pyqt 把控制台信息显示到_内网渗透初识—信息收集

进入到内网后,首先要对自己当前所处的网络环境有一个清楚地判断,收集到有关当前环境足够多的信息,为接下来的渗透做好准备

PS:文中提到的PowerSploit

本机信息

包括操作系统,当前用户权限,内网ip段,杀毒软件,端口开放情况,系统打的补丁,网络状况,共享文件夹等,如果是域内的主机的话,操作系统、补丁、运行的服务、杀软等一般是域管批量用脚本安装的。

本机网络配置

  • ipconfig /all

5a9a554cf2223bbf711fe3cfd5b49236.png


### 操作系统

  • 查询操作系统及版本信息,补丁信息等等:systeminfo

4f69c75f1ca324af2a0b63357aaac18a.png
  • 查询系统体系架构:echo %PROCESSOR_ARCHITECTURE%

3b77f32e8ce3e77b620b1d4b6eaa315a.png
  • 查询已安装的软件及版本信息:wmic product get name,version

93159924b7ca8fdca5002653f6bff954.png


PS:在win10中,输入wmic /?会提示wmic已弃用,但在server2012R2,win7等版本中可以正常使用

    • powershell中可替代该命令的是Get-WmiObject:Get-WmiObject -class win32_product | Select-Object -property name,version

8827a88d231bd4037511dcdca10d37a4.png
  • 查询本机服务:wmic service list brief

ec319893dad3da96804b9b297ca202e8.png
  • 查询进程:tasklist,或者:wmic process list brief

dc2dcfab839256cbf8509d9fe6a11d3c.png

4229fc03d29a7ec3376a7109057b6f59.png


常见的杀软进程:

进程名软件360sd.exe360杀毒360tray.exe360实时保护ZhuDongFangYu.exe360主动防御KSafeTray.exe金山卫士SafeDogUpdateCenter.exe安全狗McAfee McShield.exeMcAfeeegui.exeNOD32AVP.exe卡巴斯基avguard.exe小红伞bdagent.exeBitDefender

  • 查看已启动的程序信息:wmic startup get command,caption

c1bf5cd86f2ed5f8ed6736eed3078bf1.png
  • 查看计划任务:schtasks /query /fo LIST /v
    此处在我的靶机Server2008R2中出现了错误:无法加载列资源,这里把编码暂时设置为英文:chcp 437,之后再改回来:chcp 936即可

0e84fcb857f4f39fd1fdf1e8b5031d4b.png
  • 查看主机的开机时间:net statistics workstation

595ead9514b11df3f7deb96515b4afab.png
  • 查看用户列表:net user

978179c0aa7a5b00412ddf5c9e1d71de.png
  • 查看本地管理员信息:net localgroup administrators

4275e416ff78518ef547e8af3a7c35cc.png
  • 查看当前在线的用户:query user || qwinsta

162cb75b68e5fa19def2dce053efb079.png
  • 查看本地计算机与所连接客户端之间的会话:net session
    对于该指令,一开始我的机器上报错:"发生系统错误5。拒绝访问",找了一下解决办法,只要以管理员身份运行即可,此处靶机没有回话,所以显示为空

ba971bb1d85c5bb18798c6f73ae969a0.png
  • 查看端口:netstat -ano

789cef0f4e011a7f0739dc53adabc808.png
  • 查看补丁信息:systeminfo,wmic qfe get caption,description,hotfixid,installedon

077dfdf8ead8573b458e64bc492425a9.png
  • 查看本机共享列表:net sharewmic share get name,path,status

f377f98891a2575ecf47985ed78c72fc.png

48c1bf2a15933abb4b988ee6639d1520.png
  • 查询路由表及所有可用的ARP缓存表:route printarp -a

5d4a570106ba09f3dbb5d438407aad51.png

12ec0edf0cc400204d9f79343ba8a84c.png
  • 查看防火墙相关:
    • 查看防火墙配置:netsh firewall show config

60f9aaa43a28a916b946bcddbd1f9d4a.png

84bb74745d8fa9f30f517bc498510091.png
    • 关闭防火墙:
      • winserver 2003之前:netsh firewall set opmode disable
      • winserver 2003之后:netsh advfirewall set allprofiles state off
        一般来说不要操作防火墙的开关,风险极大,只需要查看配置即可
  • 查看代理:reg query "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet Settings"

4dd05a37b45e9241db077f0ec7c13ec6.png
  • 查询远程连接服务:reg query "HKEY_LOCAL_MACHINESYSTEMCurrentControlsetControlTerminal ServerWinStationsRDP-Tcp" /v PortNumber

d99b79fc80d352769d07cb56b7815952.png


连接端口为16进制数0xd3d,转换为10进制就是3389

使用empire收集信息

在攻击机上安装empire后,使用usemodule powershell/situational_awareness/host/winenum即可收集相关信息,注意使用该模块需要拿到管理员权限

权限

  • 查看当前权限:whoami

3cec2d4e628bfd901e6b5ba6da91c3b0.png
  • 获取域id:whoami /all

1074ff0f686929c6140fba6473a7fd61.png
  • 获取指定用户的详细信息:net user xxx /domain

b86251ec3e6e96e3b0b8c1de1fda041b.png


## 判断是否存在域

  • 使用ipconfig /all即可做出判断

e863a66200f58b907cc761a6ca29b215.png
  • 此时发现域名后,利用nslookup命令直接解析域名的ip,借此来判断dns服务器与域控是否在同一主机上nslookup 域名

aa2c4d27c943346899b5c4d8f70dbd21.png
  • 查询当前的登录域与用户信息:net config workstation

9e872052d2e4789e55d44296e18630ea.png
  • 判断主域:net time /domain

9915e4238907320e918f427c1f9ed594.png


若是此命令在显示域处显示WORKGROUP,则不存在域,若是报错:发生系统错误5,则存在域,但该用户不是域用户
## 探测域内存活主机

  • 利用ICMP进行探测:for /L %I in (1,1,254) DO @ping -2 1 -n 1 192.168.52.%I | findstr "TTL="

6e7beb6444da3cf61d77dc936ed8b620.png


我在本地机器中做了小小的修改,让它只扫描141到142这段

  • 利用empire中的arpscan模块:usemodule situational_awareness/network/arpscan,设置Range(范围)后即可扫描

扫描端口

  • 使用telnet进行扫描:telnet 主机名 22
  • 使用metasploit进行扫描:需要用到的是auxiliar/scanner/portscan/ack、ftpbounce、syn、tcp、xmas等模块
  • PowerSploit中的Invoke-Portscan.ps1脚本,位于Recon目录下
  • 使用Nishang的PortScan模块,位于scan目录下,上传到主机上执行

获取Banner

扫描到端口后就要获取到其Banner信息,接着就可以在漏洞库里查找poc,这个可以找一下常见的端口的服务来得知

端口号端口说明攻击技巧21/22/69ftp/tftp:文件传输协议允许匿名上传、下载、爆破、嗅探、溢出和后门22ssh:远程连接爆破OpenSSH;28个退格23telnet:远程连接爆破嗅探、弱口令25smtp:邮件服务邮件伪造53DNS:域名系统DNS区域传输DNS劫持DNS缓存投毒DNS欺骗利用DNS隧道技术刺透防火墙67/68dhcp劫持欺骗80/443/8080常见web服务端口web攻击、爆破、对应服务器版本漏洞110pop3爆破、嗅探139samba爆破未授权访问远程代码执行143imap爆破161snmp爆破389ldap目录访问协议注入攻击未授权访问,弱口令512/513/514linux rexec直接使用rlogin爆破873rsync未授权访问文件上传1080socket爆破:进行内网渗透1352lotus Domino邮件服务爆破:弱口令信息泄漏:源代码1433mssql爆破:使用系统用户登录注入攻击SA弱口令1521oracle爆破:TNS注入攻击反弹shell2049nfs配置不当2181zookeeper未授权访问3306mysql爆破拒绝服务注入提权3389rdp爆破Shift后门3690SVN服务SVN泄露未授权访问4848glassfish爆破:控制台弱口令认证绕过5000sybase/DB2爆破注入5432postgresql缓冲区溢出注入攻击爆破:弱口令5632pcanywhere拒绝服务代码执行,抓取密码5900vnc爆破:弱口令认证绕过6379redis未授权访问爆破:弱口令7001/7002weblogicJava反序列化控制台弱口令控制台部署webshell8069zabbix远程命令执行SQL注入8080/8089JBoss/Resin/Jetty/Jenkins反序列化、控制台弱口令9090websphere控制台爆破:控制台弱口令Java反序列9200/9300elasticsearch远程代码执行10000webmin控制面板弱口令11211memcacache未授权访问27017/27018mongodb爆破未授权访问50000SAP Management Console远程执行

获取域内的基础信息

  • 查询域:net view /domain

71b7a0f9b6e57a50bb42312325be5ca1.png
  • 查询域内所有计算机:net view /domain:域名

36c1bb703609fa3c13d51c550ea19a33.png
  • 查询域内所有用户组:net group /domain

43748c1812bb61129f5b804d746158b9.png
  • 查看所有域成员计算机列表:net group "domain computers" /domain

2b2d9b3ffe8bc0b8a04ada39c2fa25b1.png
  • 获取域密码信息:net accounts /domain

10ca100532b38bf70081548853d94f04.png
  • 获取域信任信息:nltest /domain_trusts

d85c3d654e7f4e6ef1dd56f23860cc40.png


## 寻找域控

  • 查看域控机器名:nltest /DCLIST:域名

f8554ba4c1b831bd5fe7520f3b151edf.png
  • 查看域控主机名:nslookup -type=SRV _ladp._tcp
  • 查看域控制器组:net group "Domain Controllers" /domainnetdom query pdc

032dbacf7f62fe9bbc6d2928d3fd497b.png

cd9597bd217e4081ee4ee31918f62f4d.png


在大型企业中,域控制器组中的用户会不止一个,这是为了保证主域控故障时可以切换到备用域控制器
## 获取域内用户和管理员信息

  • 查询所有域用户列表:net user /domain

20da1076e07f34ff7be017a0b5dc5fe5.png
  • 获取域内用户的详细信息:wmic useraccount get /all,可以获取到用户名,描述信息,SID域名等

11f38a613ac38101b5feb91b85fa8fba.png
  • 查看存在的用户:dsquery user

d68d35a56f4e722d59abad0e78498d3a.png
  • 查询本地管理员组用户:net localgroup administrators

7ca7dae9f6966fdc9edccb5118168911.png
  • 查询域管理员用户组:net group "domain admins" /domain

35257024a4ec2b4dd9c80fc6cfdd36fc.png
  • 查询管理员用户组:net group "Enterprise Admins" /domain

1daa82b52095c35b7f27754304aeb37d.png


## 定位域管理员
常规渠道有二个,日志与会话,日志是本地机器的管理员日志,可以用脚本或者内置应用wevtutil导出来看
### 工具
psloggedon.exe,netview.exe,PVEFindADUser.exe,powersploit的PowerView脚本,Empire的user_hunter模块等

查找域管理进程

本机检查

  • net group "Domain Admins" /domain
  • 列出本机的所有进程及进程用户:tasklist /v

cd35b60ddfee15df4b00dc907672286e.png


在以上进程中尽量查找域管理员进程或是与其相关的进程
### 查询域控的域用户会话

  • 查询域控制器列表:net group "Domain Controllers" /domain
  • 收集域管理员列表:net group "Domain admins" /domain
  • 收集所有活动域的会话列表:NetSess -h,使用的是NetSess.exe

9cb3ed6982257b40458821c07825604a.png


目前还没有任何会话,所以显示无
## 利用powershell收集域信息

首先要将powershell的权限限制更改为RemoteSigned,这样就可以执行本地上的脚本

输入:Get-ExecutionPolicy,发现自己并不是RemoteSigned权限,输入:Set-ExecutionPolicy RemoteSigned,按Y确定即可,在本地虚拟机测试时还可以将脚本权限改为Unrestricter,这样可以执行来自网络与本地的任何脚本

此处要使用的脚本在PowerSploit/Recon中,将要用到的PowerView.ps1传入靶机,在powershell中打开该脚本目录并导入:Import-Module .PowerView.ps1就可以进行收集了

具体命令的相关用法在PowerSploit/Recon/READE.md

小结

针对内网渗透这方面自己是边学习内网安全攻防这本书边整理的,由于是初学者且没有在真实环境实战过,文内有错误还请师傅们提出,水平一般还望见谅


转载于先知社区

中怎么实现? 很简单,可以使用QPlainTextEdit控件来实现。首先在UI设计中添加一个QPlainTextEdit控件,并设置好其属性,然后在代码中将控制台的输出重定向到QPlainTextEdit控件中即可。 具体代码如下: ```python import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QPlainTextEdit class MainWindow(QMainWindow): def __init__(self, parent=None): super().__init__(parent) self.initUI() def initUI(self): self.resize(400, 300) # 添加QPlainTextEdit控件 self.text_edit = QPlainTextEdit(self) self.setCentralWidget(self.text_edit) # 重定向控制台输出到QPlainTextEdit控件中 sys.stdout = EmittingStream(textWritten=self.outputWritten) sys.stderr = EmittingStream(textWritten=self.outputWritten) def outputWritten(self, text): cursor = self.text_edit.textCursor() cursor.movePosition(cursor.End) cursor.insertText(text) self.text_edit.setTextCursor(cursor) self.text_edit.ensureCursorVisible() class EmittingStream(object): def __init__(self, textWritten=None): self.textWritten = textWritten def write(self, text): if self.textWritten: self.textWritten.emit(str(text)) if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() window.show() # 启动应用程序的主循环,进入事件循环,等待事件的发生 sys.exit(app.exec_()) ``` 通过将sys.stdout和sys.stderr重定向到EmittingStream中,将控制台输出重定向到自定义的textWritten方法中,然后将输出添加到QPlainTextEdit控件中即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值