Skip Ribbon Commands
Skip to main content

Ondrej Sevecek's Blog

:

Engineering and troubleshooting by Directory Master!
Ondrej Sevecek's Blog > default
duben 16
Dnešní online přenos z WUG na téma PowerShell pro pokročilé

Dneska mám premiéru. Poprvé se pokusím svoji přednášku pro WUG (PowerShell pro pokročilé) přenášet online pomocí livemeetingu. Kdo máte zájem, můžete se zkusti připojit, začíná to od 17:00, ale asi tam musíte být dříve. Nevím ještě. Nevím v jaké to bude kvalitě, jak to bude fungovat a nevím, jak moc budu schopen to ovládat, tak buďte prosím trpěliví.

Nevím který link je ten správný, zkuste jeden z nich:

https://www.livemeeting.com/cc/mvp/meet/TH887C 

https://www.livemeeting.com/cc/mvp/join?id=TH887C&role=attend&pw=sevecek

Položka do kalendáře je tady: ​https://www.livemeeting.com/cc/mvp/meetingICS?id=TH887C&role=attend&pw=sevecek&i=i.ics

​Tak zkusíme a uvidíme! Těším se!

PS: Těším se na setkání na TechEd 2015!

duben 15
Dobře alza!

Pěkně. Dneska jsem zavítal zase jednou na alza.cz a ​už je to všechno v cajku, jak má být! Dokonce se vytáhli se zeleným certifikátem.

Takže výtka z mého staršího článku už není pravdou. Pochvala.

A dívám se, že se toho nebojí a mají rovnou hustě 256bitový certifikát.

Taky se můžete podívat sem, mají test za A. A to ten test nezohledňuje PFS preferenci (ECDH algoritmy). Ode mě by za tohle dostali AAA.

Mají i Strict-Transport-Security (HSTS) a mají ho dobře udělané, protože to vracejí i ve všech HTTPS odpovědích, což jsem už párktár viděl, že ne každý dělá (překvapivě). Zkoušel jsem se tam dostat přes čisté HTTP a nelze. Vždycky dostanete 301 permanent redirect. Teď už jenom aby to IE začal podporovat. Jsou dokonce už i předloudnutí.

Tak sice už jen škoda, že mě tím zmizel příklad chybného webu, tedy kromě mého :-)

​PS: Těším se na setkání na TechEd 2015!

únor 17
Můj první MVA kurz

Můj první MVA (Microsoft Virtual Academy) kurz byl vydán právě před několika hodinami.​ Jedná se o Bezpečnost Windows pro pokročilé. Děkuji tímto Tomáši Kantůrkovi z Microsoftu, protože připravit to do provozu musela být pěkná dřina.

Další budou doufám v brzu následovat!

http://www.microsoftvirtualacademy.com/training-courses/bezpecnost-windows-pro-pokrocile-identity

únor 17
Moje slajdy z konference ShowIT 2015

Tak tohle byla naprosto luxusní konference! Parádní prostředí, katering, projekce!

Všechny moje slajdy jsou tady: https://www.sevecek.com/presentations/showit2015

únor 04
ISEčko jde skriptovat - automatické podepsání všech rozdělaných skriptů přímo z vývojového prostředí

Digitální podepisování PowerShell skriptů mě v poslední době docela otravuje, protože to zbytečně zdržuje. Kdykoliv uděláte nějakou změnu ve skriptu, musíte to nechat znovu podepsat. A PowerShell ISE má značný nedostatek v tom, že si nevšimne, když se soubory změní mimo prostředí. Takže je znovu nenahraje. Potřeboval jsem tedy primárně metodu, jak nechat pozavírat všechny soubory a znovu je otevřít. A vyklubalo se z toho toto:

Udělal jsem si tedy skript, který digitálně podepíše otevřené soubory (sign) rovnou z ISE. Řeší to několik problémů:

  • musíte nejprve neuložené soubory uložit. Nechcete ukládat už uložené, protože by to zbytečně změnilo jejich časová razítka
  • potom je musíte zavřít
  • abych zbytečně nezavíral všechny soubory, zavírám jenom ty, jejichž digitální signatura (digital signature) není platná. A pouze .PS1 přípony, ono ISE má i pěkné obarvování XML, které rád používám
  • podepsat ty soubory, co jste zavřeli
  • otevřít je znovu do ISE
  • a nastavit zpátky kurzor na pozici, kde byl před tím, než jsem je zavíral - jinak budete na začátku, což je dost otravné

Tady to je. Používám $psISE proměnnou. Funkci jsem si dal do PowerShell ISE profilu ($profile.AllUsersCurrentHost) a jede to jak po másle:

function global:Sign-ISE ([string] $signingCertSubjectMail = 'ondrej@sevecek.com')
{
  [System.Security.Cryptography.X509Certificates.X509Certificate2] $signingCert = $null
  $signingCert = dir Cert:\CurrentUser\My -CodeSigningCert | ? { $_.Subject -like "*E=$signingCertSubjectMail*" | Sort NotAfter | Select -Last 1 }
  
  if ($signingCert -ne $null) {

    $openFiles = $psISE.CurrentPowerShellTab | % { $_.Files }

    foreach ($oneOpenFile in $openFiles) {
 
      $oneFilePath = $oneOpenFile.FullPath
      $oneFileLine = $oneOpenFile.Editor.CaretLine
      $oneFileColumn = $oneOpenFile.Editor.CaretColumn
 
      if (-not $oneOpenFile.IsSaved) {

        [void] $oneOpenFile.Save()
      }


      if (([System.IO.Path]::GetExtension($oneFilePath) -eq '.ps1') -and ((Get-AuthenticodeSignature $oneFilePath).Status -ne 'Valid')) {

        [void] $psISE.CurrentPowerShellTab.Files.Remove($oneOpenFile)
        [void] (Set-AuthenticodeSignature $oneFilePath -Certificate $signingCert)
        $reloadedFile = $psISE.CurrentPowerShellTab.Files.Add($oneFilePath)
        $reloadedFile.Editor.SetCaretPosition($oneFileLine, $oneFileColumn)
      }
    }

  } else {

    throw 'Error: no signing certificate found'
  }
}

Dá se dokonce přidat do menu Add-ons volba na tuto funkci. A to všechno i s asociací klávesové zkratky. Takto:

$psISE.CurrentPowerShellTab.AddOnsMenu.Submenus.Add("Sign all", { Sign-ISE }, 'Ctrl+Alt+S') 

 

únor 03
Nezadržitelně se blíží konference ShowIT

Od příštího úterý se koná v Bratislavě velkolepá konference ShowIT 2015! Ještě zbývá pár posledních míst, tak se honem přihlašte!

Moje přednášky:

  • Útoky, které žádný antivirus neodhalí, aneb na co je infrastrukturní bezpečnost
  • Principy Windows ověření a SSO
  • Nová dimenze bezpečnosti - přihlašování čipovými kartami
  • Bezpečné publikování webových služeb s pomocí Web Application Proxy (WAP)
  • Nasazení RODC do DMZ
  • Bezpečnostní aspekty platformy SharePoint 2013
  • TLS/SSL protokoly ve Windows
  • Kerberos delegace neboli double-hop
  • PowerShell pro pokročilé

Letos s velkou účastí spíkrů z Microsoftu. Konečně opět ve čtyřhvězdičkovém hotelu, takže se můžete těšit na skutečný katering a vyhřáté prostředí. Samozřejmě ve středu bohatá večerní akce.

leden 30
Bez komentáře - jen moje poznámky k řešení potíží s Claims to Windows token service (c2wts)

Tohle ani nečtěte. Jen jsem si chtěl někam poznačit věci, které jsem používal k řešení potíží s claims to windows token service (c2wts, c2wtshost), neboli Windows Identity Foundation(WIF). Nebudu to vysvětlovat, takže jenom pro moji vlastní referenci.

# Kerberos S4U login with UPN only
# Common problems - the caller must be member of "Windows Authorization Access Group"
# or at least have Read permission to tokenGroupsGlobalAndUniversal AD LDAP attribute of the subject account
# If the caller is not member of local Administrators or does not have SeTcbPrivilege, the resulting access token will only be at the Identification level
$s4u = New-Object System.Security.Principal.WindowsIdentity 'sp-admin@gopas.virtual'

# Using identity foundation and the c2wts service
# Common problems - the caller must be listed among the allowedCallers in the c2wtshost.exe.config file or you get the "wts0003: the caller is not authorized to use the service" error.
# Later permission issues manifest themselves with "Token cannot be zero" exception
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.IdentityModel')
[System.Security.Principal.WindowsIdentity] $winId = [Microsoft.IdentityModel.WindowsTokenService.S4UClient]::UpnLogon("sp-admin@gopas.virtual")

# Get the c2wts named pipe and the net.pipe URL
# The pipe name will be a random {guidguid-guid-guid-guid-guidguidguid}
# it seams like it is always with 8 instances. But the simplest way
# to determine which one it is, is to get the list before and after the c2wts
# service is running and compare
[System.IO.Directory]::GetFiles('\\.\pipe')
pipelist | ? { $_ -like '*-*-*-*-*' }

$pipeName = (t:\sysinternals\handle.exe 'net.pipe:' | ? { $_ -like 'c2wtshost.exe*' } | % { $_.Split('\') } | select -l 1 | % { $_.Split(':') } 

| select -l 1).SubString(1)
$bytes = [convert]::FromBase64String($pipeName)

# The result was
# net.pipe://+/S4U/022694F3-9FBD-422B-B4B2-312E25DAE2A2/
# which is a normalized version of the following: net.pipe://localhost/S4U/022694F3-9FBD-422B-B4B2-312E25DAE2A2/
[System.Text.ASCIIEncoding]::ASCII.GetString($bytes)


# The SharePoint Secure Store error when trying generate key through the central admin
# solution was to make the Secure Store service account be member of local Administrators
# but this is not what would satisfy me :-)
Exception calling "UpnLogon" with "1" argument(s): "Token cannot be zero."
SPSecurityContext Could not retrieve valid windows identity username Token cannot be zero
.Exception.HResult = -2146233087 = COR_E_SYSTEM
.Exception.InnerException.HResult = -2147024809 = COR_E_ARGUMENT

 

leden 29
Asynchronní spouštění PowerShell skriptu

Začal jsem pokusovat s asynchronním vykonáváním skriptů (příprava na Forms a GUI obecně). Není úplně dobré na to používat Start-Job, protože ten normálně spustí znovu celý PowerShell proces, což je trošku velký kalibr. Tak jsem prozatím zjistil tohle. Což je mimochodem taky cesta, jak vůbec volat PowerShell skripty z C#.

Běží to opravdu krásně asynchronně. Ještě k tomu přidám nějakou další diagnostiku a jdu do toho. Hlavně vymyslet, jak si předávat objekty za jízdy z jednoho vlákna do druhého. Což o to, vymyslet by to tak těžké nebylo, jako že to budu muset vyzkoušet. Miláček PowerShell není úplně vždy moc milý k programátorům :-)

[System.Management.Automation.PowerShell] $powershell = [powershell]::Create()

$script = @'
  param([int] $delay = 4)

  $testFile = "$env:TEMP\test.txt"
  '----' | Out-File $testFile  -Append
  (Get-Date).ToString('s') | Out-File $testFile -Append
  Start-Sleep $delay
  (Get-Date).ToString('s') | Out-File $testFile -Append
  
  return 58, (Get-Process lsass), 'text'
'@

$powershell.AddScript($script)
$powershell.AddParameter('delay', 6)
$async = $powershell.BeginInvoke()

Write-Host ('Async: {0}' -f ($async | fl * | Out-String)) -ForegroundColor Green

try {

  # Note: break manually with Ctrl-C
  #       it will go through finally{} well
  while ($true) {

    $now = [DateTime]::Now
    Write-Host ('Main: {0:s}:{1:D3} | thread completed = {2}' -f $now, $now.Millisecond, $async.IsCompleted)
    
    Start-Sleep -Milliseconds 300
  }

}

finally {

  Write-Host ('Pre-finished: {0:s}' -f (Get-Date)) -ForegroundColor Green

  # Note: this will wait until the task has really finished
  $results = $powershell.EndInvoke($async)
  $powershell.Dispose()

  Write-Host ('Finished: {0:s}' -f (Get-Date)) -ForegroundColor Green
  
  Write-Host ('Results: {0}' -f ($results -join ', '))
  Write-Host ('Result types: {0}' -f (($results | % { $_.GetType().Name }) -join ', '))
}


Dobrou.

leden 23
Blesk peněženka

Nudím se v nemocnici, tak jsem si koupil v trafice Blesk peněženku a zkoumám to (web mají na www.bleskpenezenka.cz). Jedná se o platební kartu, kterou si koupíte za 150,- Kč v trafice. Dostanete MasterCard, normálně s číslem a CVV vzadu, platí mi do 10/17. Zdá se že je i bezkontaktní (idioti). Potom už to jenom dobíjíte přes Sazka terminály, přes internet z jiné platební karty (který musí mít 3D Secure), nebo převodem z účtu.

Na co to je? Někdo díky tomu může mít totálně anonymní platby, jako třeba když se rozvádíte a potřebujete vypadat jako socka. To já nepotřebuju. Jde mi o to, abych nemusel všude zadávat svoji kreditku. Minule mi z ní někdo vyndal 110 000,- na letenku do Peru :-) Prostě teda něco jako paypal.

Mají webový portál, kam se přihlásíte a vidíte platby do karty a kartou.

Podstatná omezení:

  • horní limit na jedno dobití přes internet je 1500,-
  • horní limit na jedno dobití obecně je 10 000,- (takže asi přes Sazku a převodem) za den, to musím ještě vyzkoušet
  • převod z banky se přičte až za 3 dny
  • jednotlivá platba může být max 10 000,- Kč
  • zdá se, že i maximální zůstatek na kartě je jenom 10 000,- Kč
  • dá se to údajně zvýšit až na 50 000,- ale musíte telefonem nahlásit, jak se jmenujete. I když teď se zrovna dívám na webu na limity a je tam rovnou 50 000,-. Tak uvidíme.
  • placení je zadarmo, ale dobití (a to i převodem z banky) je za 25,- což znamená, že dobíjet to z karty přes internet je drahé

Zážitky:

  • v pohodě jsem zaplatil na americkém webu 50 USD při zadání čísla a CVV bez nutnosti potvrdit to SMSkou
  • klesly mi peníze pod 300,- a přišla mi zadarmo SMS o tom, že tam mám málo peněz
  • myslel jsem, že ta karta má taky sama 3D Secure, ale zaplatil jsem právě na českém webu, kde to normálně moje kreditní karta vyžaduje, ale tahle to nechtěla
  • historii obou plateb vidím okamžitě na webu, pěkné
  • do jejich webu se přihlašujete jenom heslem, ale nedá se od tam nic odeslat, takže jenom přehled plateb. pěkné.

Tak uvidíme, jak se to bude dále vyvíjet. V podstatě bych to viděl jako dobrou kartu na neznámé weby, kde se zadávají údaje do toho webu a ne do nějakého rozumného platebního portálu.

leden 20
Jak vytvořit ručně shadow copy (stínovou kopii svazku)

Když vám nejede zálohování, nebo prostě jen tak kvůli kdoví čemu :-) není špatné si vytvořit ručně shadow copy (stínovou kopii svazku) nějakého diskového oddílu. Potřebujete k tomu jenom nástroj diskshadow a případně PowerShell a příkazovou řádku, pokud nemáte diskshadow na stanicích.

Když už to píšu u sebe na bezpečnostním blogu, tak upozorňuju, že shadow copy máte nejspíš na všech stanicích, kde je ve výchozím stavu zapnuta funkce system restore, neboli system protection. Operační systém vám sám od sebe dělá shadow copy před každou instalací programů i aktualizací. Dá se to potom použít k průzkumu různě napadených počítačů, protože útočníci si obvykle neuvědomují a i když smažou nějaké staré soubory, nebo logy, možná je ještě najdete v nějaké shadow copy.

Jak vylistovat všechny kopie svazku

Můžete to udělat buď pomocí diskshadow, nebo pomocí PowerShell:

diskshadow
  list shadows all


gwmi Win32_ShadowCopy | 
  select *,
         @{ n = 'DriveLetter' ; e = { (gwmi -Query ('SELECT * FROM Win32_Volume WHERE DeviceId = "{0}"' -f $_.VolumeName.Replace('\', '\\'))).DriveLetter } }

gwmi Win32_ShadowStorage | 
  select *, 
         @{ n = 'DriveLetter' ; e = { ([wmi] $_.Volume).DriveLetter } },
         @{ n = 'DiffVolumeLetter' ; e = { ([wmi] $_.DiffVolume).DriveLetter } }

V tabulce Win32_ShadowCopy je seznam všech kopií, které jsou k dispozici na všech vašich oddílech. V tabulce Win32_ShadowStorage jsou konfigurace úložišť shadow copy rozdílových kopií pro každý oddíl, který to má vůbec nějak definováno - tedy na který disk se to ukládá (obvykle na ten stejný oddíl do složky System Volume Information) a maximální omezení na velikost, pokud nějaké existuje.

Jak si stínovou kopii svazku vytvořit

Opět ji vytvoříte buď pomocí diskshadow, nebo přes WMI a PowerShell:

diskshadow
  set context persistent
  begin backup
  add volume c:
  end backup


([wmiclass] 'Win32_ShadowCopy').Create('C:\', 'ClientAccessible')

A to hlavní, jak se k ní vůbec dostat?

Je úplně jedno, jestli je client accessible, nebo není. Jestli je to produkt shadow copies for shared folders, nebo je to výsledek system protection (system restore). Pokud znáte její device object ID (deviceObjectId), tedy něco ve formátu \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy38, tak se k jejímu obsahu dostanete.

Můžete zkusit několik cest:

diskshadow
  list shadows all
  expose {guidguid-guid-guid-guid-guidguidguid} R:\


mklink /D c:\mojekopie "\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy38\"

U té druhé metody s mkdir a directory junction (parameter /J), nebo symbolic link (parametr /D), nesmíte zapomenout na konci na zpětné lomítko (backslash). Pokud to tam nedáte, sice se to namapuje, ale dostanete při přístupu chybovou hlášku "is not accessible, the parameter is incorrect".

Mazání shadow copy na závěr

Samozřejmě jdou smazat přes diskpart, nebo také přes WMI, kde použijete metodu .Delete().

leden 20
Kombilace C# vloženého uvnitř PowerShell a změna dočasného adresáře

Jenom zajímavůstka pro PowerShellisty. Do skriptu v PowerShell jde vložit (ne)přímo kus kódu v jazyce C# (csharp, c-sharp, cs). PowerShell ho potom umí spustit. Používá se to například, pokud chcete využívat PInvoke metodu na volání Win32 API, což jinak přímo z PowerShell nejde. Já to mám například ve svém keyloggeru, a zrovna se tím chystám přidat nějakou funkcionalitu do forensní analýzy.

Právě kvůli tomu volatile forensics scriptu jsem ale zkoumal, jak to dělá.

Kompilace pomocí Add-Type a temp adresáře

Kód napsaný v jazyce C# se do PowerShellu vloží pomocí herestring. Příklad následuje. Je to prostě jen jednoduchá třídička (class) s konstantou a její okamžité použití:

$cs = @'

namespace Sevecek.PowerShell { 

  public class Constants { 
     
    public const int OneValue = 5;
  }
}

'@

Add-Type -TypeDefinition $cs

[Sevecek.PowerShell.Constants]::OneValue

Jenže ten C# se musí zkompilovat. Kompiluje se pomocí cs.exe kompilátoru, který máte vždycky nainstalovaný spolu s .NET framework. PowerShell potřebuje .NET framework, takže tam ten kompilátor je úplně vždycky.

Použil jsem process monitor (procmon) k tomu, abych zjistil, kam to zapisuje. Jakmile zavoláte Add-Type, celý obsah toho herestring se vyextrahuje a uloží do soubouru v tempu - konkrétně v té cestě, která je v proměnné %tmp%, neboli pro PowerShell tedy $env:tmp. Existuje ještě jedna úplně stejná proměnná %temp%, tedy $env:temp, ale ta se v tomto okamžiku nepoužije. PowerShell to ukládá opravdu do dočasného adresáře, který je v proměnné $env:tmp. Vyzkoušeno pro všechny verze PowerShellu 2, 3 i 4.

Vytvoří to tam několik souborů, kód je v souboru .cs a příkazová řádka pro cs.exe kompilátor je v souboru .cmdline. Příkazové řádky pro C# compiller jsou zde:

# PowerShell version 2 CS/C# compiller command line
# used by Add-Type -TypeDefinition.
# The temporary files goe into the path specified by 
# the $env:TMP (%TMP%) environment variable:
#
# /t:library /utf8output /R:"System.dll" /R:"C:\Windows\assembly\GAC_MSIL\System.Management.Automation\1.0.0.0__31bf3856ad364e35\System.Management.Automation.dll" /out:"qbrwvho.dll" /D:DEBUG /debug+ /optimize- /warnaserror  "qbrwvho.0.cs"

# PowerShell version 4 CS/C# compiller command line
# used by Add-Type -TypeDefinition
# The temporary files goe into the path specified by 
# the $env:TMP (%TMP%) environment variable:
#
# /t:library /utf8output /R:"System.dll" /R:"C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Management.Automation\v4.0_3.0.0.0__31bf3856ad364e35\System.Management.Automation.dll" /R:"System.Core.dll" /out:"sxbfvua.dll" /D:DEBUG /debug+ /optimize- /warnaserror  "sxbfvua.0.cs"

Změna dočasného adresáře pro kompilaci

Za normálních okolností asi nebudete chtít měnit adresář, do kterého se budou dočasné kompilační soubory ukládat. Jde to do dočasného adresáře tmp, u kterého se očekává, že prostě plní tuto funkci. V mém případě to ale není dobře, protože potřebuji kompilaci provádět do vyhrazeného adresáře ve svém forensním balíčku, abych minimalizoval zanášení změn do zkoumaného systému.

Jak tedy změníte dočasný adresář pro kompilace vloženého C# kódu? Jednoduše. Stačí nastavit jinou cestu do proměnné $evn:tmp.

$env:tmp = 'C:\MyTempCompilationTarget'

 

leden 19
Process memory dump a historie příkazů cmd a PowerShell

Dneska jsem narazil na zajímavý problém. Udělal jsem si memory dump příkazových řádek z procesů cmd a powershell pomocí programu procdump (ofiko program od Microsoftu ke stažení zde). Jak jistě pravidelně sami používáte, tyto programy si pamatují historii (command history) příkazů, které jste zadávali. Můžete se na ně vracet buď pomocí šipek nahoru a dolů, nebo si je dokonce zobrazit přes klávesu F7.

Používám procdump ve svém forensním nástroji na sběr informací z počítačů, pokud je podezření na nějaký incident. No a co když tam někdo nechal běžet příkazovou řádku, nebo právě PowerShell. Nepůjde z toho memory dumpu vyndat seznam těch použitých příkazů?

Nečekal jsem, že by to bylo nějak blízko u sebe, nebo přehledně, ale ono to v těch procesech nebylo vůbec. Přitom ještě nedávno jsem to tam našel. Jak to?

Stačilo si uvědomit, že dneska jak cmd, tak i PowerShell, spouští ještě další proces conhost.exe na to, aby hovořili s uživatelem. Moc nerozumím proč, ale dělá to už od Windows 7. Ale to není ani podstatné. Důležité je to, že historie příkazů je v tom conhost procesu, a nikoliv v cmd.exe, nebo v powershell.exe.

Takže stačí použít další utilitku strings, tedy něco jako

procdump -ma -o <conhostPID> conhost.dmp
strings conhost.dmp > conhost.txt

A ty příkazy už v tom najdete. Samozřejmě nejsou tam moc pěkně pohromadě, ale na to, abyste zjistili, nebo si potvrdili, co tam kdo zadával, to úplně stačí.

leden 09
Pentest - Ukázkový kód modifikace obsahu webového požadavku pro Fiddler

Právě pracuju na jednom penetračním testování webové aplikace a zase jako vždycky, když se k něčemu vracím po pár měsících, tak si už nic nepamatuju, a všechno hledám. Tak tohle berte jenom jako můj vlastní semplík, abych to příště měl po ruce.

Jedná se o ukázku kódu do Fiddler pravidla (rule), který modifikuje jméno souboru uploadovaného z formuláře, který používá enctype="multipart/form-data". Navíc to obarví tu položku na červeno a ztlustí ji (bold). Na zbytek už máte Fiddler ScriptEditor, a jeho inteli sense, ale s něčím musím vždycky začít.

if (oSession.HostnameIs("test.gopas.cz") && oSession.uriContains("/default.aspx") && oSession.HTTPMethodIs("POST")) {

  oSession["ui-color"] = "red";
  var oBody = System.Text.Encoding.UTF8.GetString(oSession.RequestBody);
           
  if (oBody.Contains("Content-Disposition: form-data; name=\"fileUpload\";")) {
       
    oSession["ui-bold"] = "true";
    oBody = System.Text.RegularExpressions.Regex.Replace(oBody, "(Content-Disposition: form-data; name=\"fileUpload\"; filename=\")(.+?)(\")", "$1test.pdf$3");
    oSession.utilSetRequestBody(oBody);
  }
}

 

Tak dobrou. Mimochodem, tenhle pentest opět ukázal, že mnozí vývojáři webových aplikací o bezpečnosti ještě neslyšeli. A to i když dodávají aplikaci pro banku.

leden 08
Odpověď - jak zablokovat přístup na internet některým uživatelům, nebo počítačům

Dneska ještě jedna odpověď - jak zablokovat přístup na internet z nějakých počítačů, centrálně přes GPO (Group Policy Object)?

Odpověď

Nejspíš docela jednoduše pomocí Windows Firewall. Windows Firewall se dá nastavit přes Group Policy. V editoru je to v části:

Computer configuration
  Policies
    Windows settings
      Security settings
        Windows firewal with advanced security

Česky to je tady:

Konfiugrace počítače
  zásady
    nastavení systému Windows
      nastavení zabezpečení
        brána Windows Firewall s pokročilým zabezpečením

Umí udělat blokovací Outbound pravidlo. Tam si zadáte třeba rozsah IP adres. Pokud bych měl třeba vnitřní síť 192.168.1.x, tak bych tam dal dva blokované rozsahy 0.0.0.0-192.168.0.255 a druhý nad tím privátním 192.168.2.0-223.255.255.255.

Nesmíte to přehnat moc nahoru, musíte skončit na 223. Protože nad tím je multicast, který potřebujete i ve vnitřní síti - možná. Jediná věc je, že tohle se nastavuje per počítač - tedy přes GPO, ale je to v počítačové části toho Group Policy Object.

To znamená, že se to bude vstahovat na konkrétní počítače a nikoliv na nějaké konkrétní uživatele. Pokud lidi mají svůj počítač, tak to je ok. Pokud se ale nějaký uživatel přesouvá, tak toho nedosáhnete.

Ještě odkazy na předchozí článečky o Windows Firewall - problémy s jeho GPO pravidly, pokud se používají výchozí předdefinovaná a obecně o jeho smysluplnosti.

1 - 14Next
>
 

 Rychlovky lepší než tvítr

 
17.4.2015 11:49
hustěéé, nějaký spammer dokázal prorazit moji "ochranu" s číslem 2 při komentování u mě na webu.
17.4.2015 7:37
Ostravaka nemusim ale dnesni song o treninku u ruzicky - se smeju jeste ted
16.4.2015 7:45
TechEd 2015 se nezadržitelně blíží. Už jenom měsíc do mé milované jarní konference. Nevím proč, ale ta atmosféra je prostě úžasná! https://www.teched.cz
9.4.2015 17:21
Certifikační zkoušky MCP vyžadují po několika letech recertifikaci. Odteď nemusíte jít znovu na zkoušku, stačí projí (jen) několik (mnoho) MVA kurzů.
8.4.2015 11:47
příští týden mám WUG Bratislava - PowerShell pro pokročilé. Tak doražte! http://www.wug.sk/?name=events&e=179
7.4.2015 20:57
teamviewer? neexistuje čistá verze "client". všechno si to automaticky zapíná vzdálený přístup, který nelze vypnout. tomu říkám bezpečnost.
4.4.2015 15:06
Kostkovy cukr - nejvhodnejsi bomboniera pro tchyni
1.4.2015 16:25
Congratulations 2015 Microsoft MVP!
28.3.2015 19:22
No proc? Vsichni turci, kosovci, makedoci atd z Nemecka a Rakouska maji pres velikonoce dovcu, tak jedou domu.
28.3.2015 19:22
Luxus trihvezdickovy hotel. Kuracky pokoj. Zadna wifi ani placena. Sprcha dela potopu. Nevim jestli neni lepsi prespat v aute.
28.3.2015 19:22
Prvni report z Belehradu. Spis z cesty. Dalnica zkrz Madarsko narvana  D a A auty. Proc asi?
14.3.2015 23:54
Ja to rikam porad, ze ty antiviry jsou zmagorenci. Vic udalosti na support, nez pozitivnich zasahu: http://m.bbc.com/news/technology-31851125
12.3.2015 16:47
Ja mam clanek na technetu a ani o tom nevim :-) http://blogs.technet.com/b/technetczsk/archive/2015/02/16/architektura-overovani-v-systemech-windows-a-rizika-z-toho-plynouci.aspx
10.3.2015 15:24
hrubus megakrutus: http://www.zive.cz/bleskovky/google-vyvinul-unikatni-experimentalni-virus-vyuziva-fyziku-modulu-ram/sc-4-a-177470/default.aspx
9.3.2015 17:40
zajímavá aktualizace: https://support.microsoft.com/kb/3004375?wa=wsignin1.0 . Zvlášť z pohledu toho, že dřív to logovalo jenom PowerShell.exe a nebyly k tomu parametry :-)
4.3.2015 8:20
Ctyri sojky na jednom strome
3.3.2015 13:42
zajímavé postřehy ohledně bezpečnosti Apple: http://www.root.cz/clanky/postrehy-z-bezpecnosti-podvodne-e-maily-este-nedali-posledne-slovo/
2.3.2015 13:51
už mi víckrát vrtalo hlavou, jak se dostat k heslům NPS RADIUS klientů - tak jsem si to přidal do komentáře https://www.sevecek.com/Lists/Posts/Post.aspx?ID=357
12.2.2015 19:16
Jestli budeš zlobit, tak tě odvezu do Norska a dám ti na ulici před sociálkou na zadek!
12.2.2015 7:45
Antiviry na mou ranni prednasku se uz instaluji. Dneska mame Avast, Eset a Symantec. Avg nesla stahnout trialka :-)
10.2.2015 15:10
Tak to je parada - jakoze si udelam z Azuru VPN primo do firmy, aby kazdej  Ind co to spravuje mel pristup primo k nam domu :-)
9.2.2015 7:05
Vikendovy pobyt na chalupe se zmenil na poblit. Ooo boze. Je to hnus vasnosti.
7.2.2015 10:47
Vcera vecer na parkingu pred McDonaldem muj milacek Janek poblil meho milacka auto a ja to ted drhnu. Fuj :-)
2.2.2015 21:46
to jsou idioti. MS zrušil "remote control" na RDP ve Windows 2012, aby se to zase vrátilo pod názvem "shadowing" ve Windows 2012 R2. panebože
31.1.2015 14:00
Hlazeni rejnoku kteri zerou z ruky tak to je paraaada. Zoo Lesna Zlin!