Skip to content

Categories

Tags

On this page

重定向器 Redirectors

1. SMTP

配置SMTP是为了执行如下两个操作:

  • 1. Sendmail

    • 删掉之前的server headers,在/etc/mail/sendmail.mc结尾增加:

      • define(`confRECEIVED_HEADER',`by $j ($v/$Z)$?r with $r$. id $i; $b')dnl
    • 在/etc/mail/access结尾增加:

      IP-to-Team-Server *TAB* RELAY
      Phish-Domain *TAB* RELAY
    • 参考:

    • catch-all address:把任何发送给*@phishdomain.com的邮件转发到到指定的邮件地址。

      • echo PHISH-DOMAIN >> /etc/mail/local-host-names
    • 在/etc/mail/sendmail.mc的//Mailer Definitions//(结尾处)之前添加以下行:

      • FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable.db')dnl
    • 在/etc/mail/virtusertable结尾增加:

      • @phishdomain.com external-relay-address
  • 2. Postfix

    • Postfix是替换Sendmail的一个更好的选择,还提供了更好的兼容性;Postfix还提供了全面的IMAP支持,使得测试人员能够实时地与对原始消息做出响应,,而不必依靠catch-all address。
    • 配置参考:Mail Servers Made Easy

2. DNS

X37sEN
  • Socat

  • iptables

    • iptables转发DNS规则可以和我们的cs team server配合使用

      iptables -I INPUT -p udp -m udp --dport 53 -j ACCEPT
      iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT \
      --to-destination <IP-GOES-HERE>:53
      iptables -t nat -A POSTROUTING -j MASQUERADE
      iptables -I FORWARD -j ACCEPT
      iptables -P FORWARD ACCEPT
      sysctl net.ipv4.ip_forward=1
  • DNS重定向也可以在NAT后面完成

    • 有时候可能需要在没有公网IP的内部网络上托管C2服务器,可以使用iptables、socat和反向SSH隧道的组合来实现。
    • 4xDzc7

3. HTTP(S)

  • 实践可以参考 CIA 如何实现C&C基础设施

  • socat

    • socat可用于将指定端口上的任何 TCP 数据包重定向到你的服务器。将localhost上的 TCP 端口 80 重定向到另一台主机上的端口 80 的基本语法是:
      • socat TCP4-LISTEN:80,fork TCP4:<REMOTE-HOST-IP-ADDRESS>:80
    • 如果要指定网络接口,可以使用
      • socat TCP4-LISTEN:80,bind=10.0.0.2,fork TCP4:1.2.3.4:80
  • iptables

    • 除了socat, iptables可以通过 NAT 执行dumb pipe重定向。 要将转向器的本地端口80转发到远程主机,配置命令如下:

      iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
      iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT \
      --to-destination <REMOTE-HOST-IP-ADDRESS>:80
      iptables -t nat -A POSTROUTING -j MASQUERADE
      iptables -I FORWARD -j ACCEPT
      iptables -P FORWARD ACCEPT
      sysctl net.ipv4.ip_forward=1
  • SSH

    • 首先,必须设置GatewayPorts转发,否则将无法正常使用:

      # Allow the SSH client to specify which hosts may connect
      GatewayPorts yes
      # Allow both local and remote port forwards
      AllowTcpForwarding yes
    • 要将redirector的本地端口 80 转发到你的内部服务器,命令如下:

      tmux new -S redir80
      ssh <redirector> -R *:80:localhost:80
      Ctrl+B, D
    • 还可以转发多个端口,例如,同时打开 443 和 80: id:: 624ed011-fe17-47ab-a287-cbab172044be

      tmux new -S redir80443
      ssh <redirector> -R *:80:localhost:80 -R *:443:localhost:443
      Ctrl+B, D

4. Payloads 与 Web

5. C2重定向

  • 重定向 C2 流量有两个目的:1、隐藏后端真实服务器;2、躲避相关的调查者,让他们以为这是个合法网站。 通过使用Apache的mod_rewrite和自定义C2配置文件或其他代理(比如使用Flask),我们可以高效的过滤出来自调查 C2 的流量。

  • 基于上述 “C2重定向”,另一种方法是可以在重定向服务器使用Apache的SSL代理引擎来接受入站SSL请求,并将这些请求代理到HTTPS listener上。 整个阶段使用SSL加密,可以根据需要在redirector上转发SSL证书。

  • 假如你已经使用了LetsEncrypt(aka CertBot),为了使mod_rewrite规则能够工作,需要在“/etc/apache2/sites-available/000-default-le-ssl.conf” 安装配置证书。 另外,要启用SSL ProxyPass引擎,相关配置如下:

    # Enable the Proxy Engine
    SSLProxyEngine On
    # Tell the Proxy Engine where to forward your requests
    ProxyPass / https://DESTINATION_C2_URL:443/
    ProxyPassReverse / https://DESTINATION_C2_URL:443/
    # Disable Cert checking, useful if you're using a self-signed cert
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off

6. 来源

[CIA 如何实现C&C基础设施]: ../实践参考/CIA 如何实现C&C基础设施.md "CIA 如何实现C&C基础设施"

Edit this page
Last updated on 4/9/2023