Author:零魂(zerosoul)
Blog: http://hi.baidu.com/0soul

最近运气不好,拿下的某内网,Server区全部不能外连,没法反弹socks出来,导致渗透内网其它网段的时候很辛苦。其中一台MSSQL和Web是分离的,服务器虽然拿下了,但有时候上去执行一些管理员权限才能执行的命令时(该Server是IIS6+ASPX,权限不够),只能用reDuh上3389,但reDuh实在是太慢了,我现在用reDuh连终端的时候都设置的最低分辨率(640 x 480)和最低色彩(256色),即使这样好不容易上去了敲个命令还要等半天,实在让人抓狂.....

然后想到了psexec.exe,它可以在提供用户名密码的情况下(120G RainbowTable在手,跑密码目前还未受到过阻力),以其它用户的权限运行程序,如果能在WebShell里面用它+密码执行管理员权限命令还是蛮方便的。立刻上传尝试,结果发现半天不返回结果,taskkill掉后在本机测试,发现第一次执行的时候会在本地桌面(console)弹出“最终用户许可协议”提示,不点同意就不会继续(我本来还报侥幸不在桌面环境运行就不会弹呢)。如下图。

我们需要的当然是纯命令行的工具,弹这东西真是烦人,所以得改造下,又拿出同样是Sysinternals出品的Regmon监控了下,发现相关键值记录在HKEY_CURRENT_USER\Software\Sysinternals\PsExec下面,又拿出OllyDBG准备调试修改一下,结果调试的时候发现原来这小工具还不是那么不可理喻,提供了一个自动接受“最终用户许可协议”的参数 -accesseula(更囧的是刚刚才发现第一次运行弹的框框上有提示这个参数- -!)

这就好办了,上传PsExec.exe后,就可以以下面的形式在权限比较低的WebShell里面执行高权限系统命令了:

C:\WINDOWS\Temp\psexec.exe -accepteula \\127.0.0.1 -u administrator -p 654321 net user zerosoul 123456 /add

654321是管理员密码,net user zerosoul 123456 /add是要执行的命令。不过不到万不可以可不要用加账户这么大动作的命令,呵呵。

当然内网渗透的时候psexec.exe不止这点本事,而且貌似psexec.exe比IPC$用at执行命令来的方便。

再说说psloglist.exe,是个操作系统日志的小工具。查看Security日志一般能快速定位管理员IP,在内网渗透的时候还是很有用的。

C:\WINDOWS\Temp\psloglist.exe -accepteula -g C:\WINDOWS\Temp\securitydump.evt security

上面这句命令可以把Security日志导出到C:\WINDOWS\Temp\securitydump.evt,down回本地后可以用事件查看器(eventvwr.msc)导入查看。位于C:\WINDOWS\system32\config\的Security日志原始文件SecEvent.Evt是可以下载的,但下载下来是没法导入的。能记录登陆IP的事件ID:682.

PsTools工具包可谓是小工具里经典中的经典了,否则MS怎么会收购它呢,呵呵。Sysinternals出品的东西都挺好用的,像PsList这些就不用说了,但要提一点的是,PsTools里,很多小工具的参数选项都有一句\\computer 。

文章如转载,请注明转载自:http://www.5iadmin.com/post/189.html